{
  "contractName": "WitPriceFeedsV3",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_witOracle",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_operator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "DeviantPrice",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "HotPrice",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "index",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "range",
          "type": "uint256"
        }
      ],
      "name": "IndexOutOfBounds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidArgument",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidGovernanceTarget",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidLengthEncoding",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidUpdateData",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidUpdateDataSource",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoFreshUpdate",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PriceFeedNotFound",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PriceFeedNotFoundWithinRange",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "StalePrice",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "read",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "UnexpectedMajorType",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "master",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "clone",
          "type": "address"
        }
      ],
      "name": "Cloned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "id4",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "caption",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int8",
          "name": "exponent",
          "type": "int8"
        },
        {
          "indexed": false,
          "internalType": "enum IWitPriceFeedsTypes.Mappers",
          "name": "mapper",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "string[]",
          "name": "dependencies",
          "type": "string[]"
        }
      ],
      "name": "PriceFeedMapper",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "id4",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "caption",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "int8",
          "name": "exponent",
          "type": "int8"
        },
        {
          "indexed": false,
          "internalType": "enum IWitPriceFeedsTypes.Oracles",
          "name": "oracle",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "oracleAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "oracleSources",
          "type": "bytes32"
        }
      ],
      "name": "PriceFeedOracle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "id4",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "caption",
          "type": "string"
        }
      ],
      "name": "PriceFeedRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "ID4",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "Witnet.Timestamp",
          "name": "timestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "Witnet.TransactionHash",
          "name": "trail",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "price",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "int56",
          "name": "deltaPrice",
          "type": "int56"
        },
        {
          "indexed": false,
          "internalType": "int8",
          "name": "exponent",
          "type": "int8"
        }
      ],
      "name": "PriceFeedUpdate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "publishTime",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "int64",
          "name": "price",
          "type": "int64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "name": "PriceFeedUpdate",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "id4",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "caption",
          "type": "string"
        },
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "computeEma",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "cooldownSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "heartbeatSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "maxDeviation1000",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "minWitnesses",
              "type": "uint16"
            }
          ],
          "indexed": false,
          "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
          "name": "conditions",
          "type": "tuple"
        }
      ],
      "name": "PriceFeedUpdateConditions",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "cloned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witOracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_curator",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "computeEma",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "cooldownSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "heartbeatSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "maxDeviation1000",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "minWitnesses",
              "type": "uint16"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
          "name": "_defaultUpdateConditions",
          "type": "tuple"
        }
      ],
      "name": "initializeClone",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "valueFor",
      "outputs": [
        {
          "internalType": "int256",
          "name": "_value",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_status",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "getEmaPrice",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "_age",
          "type": "uint64"
        }
      ],
      "name": "getEmaPriceNotOlderThan",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "getEmaPriceUnsafe",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "getUpdateFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_curator",
          "type": "address"
        }
      ],
      "name": "clone",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "symbol",
          "type": "string"
        }
      ],
      "name": "createChainlinkAggregator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "consumer",
      "outputs": [
        {
          "internalType": "contract IWitPriceFeedsConsumer",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "footprint",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "_footprint",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        }
      ],
      "name": "hash",
      "outputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "getPrice",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "getPrice",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int8",
              "name": "exponent",
              "type": "int8"
            },
            {
              "internalType": "uint64",
              "name": "price",
              "type": "uint64"
            },
            {
              "internalType": "int56",
              "name": "deltaPrice",
              "type": "int56"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "trail",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.Price",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        },
        {
          "internalType": "uint64",
          "name": "_age",
          "type": "uint64"
        }
      ],
      "name": "getPriceNotOlderThan",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        },
        {
          "internalType": "uint24",
          "name": "_age",
          "type": "uint24"
        }
      ],
      "name": "getPriceNotOlderThan",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int8",
              "name": "exponent",
              "type": "int8"
            },
            {
              "internalType": "uint64",
              "name": "price",
              "type": "uint64"
            },
            {
              "internalType": "int56",
              "name": "deltaPrice",
              "type": "int56"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "trail",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.Price",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPyth.ID",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "getPriceUnsafe",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int64",
              "name": "price",
              "type": "int64"
            },
            {
              "internalType": "uint64",
              "name": "conf",
              "type": "uint64"
            },
            {
              "internalType": "int32",
              "name": "expo",
              "type": "int32"
            },
            {
              "internalType": "uint256",
              "name": "publishTime",
              "type": "uint256"
            }
          ],
          "internalType": "struct IWitPyth.PythPrice",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "getPriceUnsafe",
      "outputs": [
        {
          "components": [
            {
              "internalType": "int8",
              "name": "exponent",
              "type": "int8"
            },
            {
              "internalType": "uint64",
              "name": "price",
              "type": "uint64"
            },
            {
              "internalType": "int56",
              "name": "deltaPrice",
              "type": "int56"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "trail",
              "type": "bytes32"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.Price",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "lookupPriceFeed",
      "outputs": [
        {
          "components": [
            {
              "internalType": "IWitPyth.ID",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "int8",
              "name": "exponent",
              "type": "int8"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "components": [
                {
                  "internalType": "enum IWitPriceFeedsTypes.Mappers",
                  "name": "class",
                  "type": "uint8"
                },
                {
                  "internalType": "string[]",
                  "name": "deps",
                  "type": "string[]"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Mapper",
              "name": "mapper",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "enum IWitPriceFeedsTypes.Oracles",
                  "name": "class",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "target",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "sources",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Oracle",
              "name": "oracle",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "bool",
                  "name": "computeEma",
                  "type": "bool"
                },
                {
                  "internalType": "uint24",
                  "name": "cooldownSecs",
                  "type": "uint24"
                },
                {
                  "internalType": "uint24",
                  "name": "heartbeatSecs",
                  "type": "uint24"
                },
                {
                  "internalType": "uint16",
                  "name": "maxDeviation1000",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "minWitnesses",
                  "type": "uint16"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
              "name": "updateConditions",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "int8",
                  "name": "exponent",
                  "type": "int8"
                },
                {
                  "internalType": "uint64",
                  "name": "price",
                  "type": "uint64"
                },
                {
                  "internalType": "int56",
                  "name": "deltaPrice",
                  "type": "int56"
                },
                {
                  "internalType": "Witnet.Timestamp",
                  "name": "timestamp",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.TransactionHash",
                  "name": "trail",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Price",
              "name": "lastUpdate",
              "type": "tuple"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.Info",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "lookupPriceFeedCaption",
      "outputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "lookupPriceFeedExponent",
      "outputs": [
        {
          "internalType": "int8",
          "name": "",
          "type": "int8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "IWitPriceFeedsTypes.ID4",
          "name": "_id4",
          "type": "bytes4"
        }
      ],
      "name": "lookupPriceFeedID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lookupPriceFeeds",
      "outputs": [
        {
          "components": [
            {
              "internalType": "IWitPyth.ID",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "int8",
              "name": "exponent",
              "type": "int8"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "components": [
                {
                  "internalType": "enum IWitPriceFeedsTypes.Mappers",
                  "name": "class",
                  "type": "uint8"
                },
                {
                  "internalType": "string[]",
                  "name": "deps",
                  "type": "string[]"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Mapper",
              "name": "mapper",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "enum IWitPriceFeedsTypes.Oracles",
                  "name": "class",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "target",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "sources",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Oracle",
              "name": "oracle",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "bool",
                  "name": "computeEma",
                  "type": "bool"
                },
                {
                  "internalType": "uint24",
                  "name": "cooldownSecs",
                  "type": "uint24"
                },
                {
                  "internalType": "uint24",
                  "name": "heartbeatSecs",
                  "type": "uint24"
                },
                {
                  "internalType": "uint16",
                  "name": "maxDeviation1000",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "minWitnesses",
                  "type": "uint16"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
              "name": "updateConditions",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "int8",
                  "name": "exponent",
                  "type": "int8"
                },
                {
                  "internalType": "uint64",
                  "name": "price",
                  "type": "uint64"
                },
                {
                  "internalType": "int56",
                  "name": "deltaPrice",
                  "type": "int56"
                },
                {
                  "internalType": "Witnet.Timestamp",
                  "name": "timestamp",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.TransactionHash",
                  "name": "trail",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct IWitPriceFeedsTypes.Price",
              "name": "lastUpdate",
              "type": "tuple"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.Info[]",
          "name": "_infos",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_caption",
          "type": "string"
        }
      ],
      "name": "supportsCaption",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultUpdateConditions",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "computeEma",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "cooldownSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "heartbeatSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "maxDeviation1000",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "minWitnesses",
              "type": "uint16"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "_recursively",
          "type": "bool"
        }
      ],
      "name": "removePriceFeed",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "_footprint",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_consumer",
          "type": "address"
        }
      ],
      "name": "settleConsumer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "computeEma",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "cooldownSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "heartbeatSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "maxDeviation1000",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "minWitnesses",
              "type": "uint16"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
          "name": "_conditions",
          "type": "tuple"
        }
      ],
      "name": "settleDefaultUpdateConditions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "int8",
          "name": "_exponent",
          "type": "int8"
        },
        {
          "internalType": "enum IWitPriceFeedsTypes.Mappers",
          "name": "_mapper",
          "type": "uint8"
        },
        {
          "internalType": "string[]",
          "name": "_deps",
          "type": "string[]"
        }
      ],
      "name": "settlePriceFeedMapper",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "int8",
          "name": "_exponent",
          "type": "int8"
        },
        {
          "internalType": "enum IWitPriceFeedsTypes.Oracles",
          "name": "_oracle",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "_oracleAddress",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_oracleSources",
          "type": "bytes32"
        }
      ],
      "name": "settlePriceFeedOracle",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "int8",
          "name": "_exponent",
          "type": "int8"
        },
        {
          "internalType": "bytes",
          "name": "_radonBytecode",
          "type": "bytes"
        }
      ],
      "name": "settlePriceFeedRadonBytecode",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "int8",
          "name": "_exponent",
          "type": "int8"
        },
        {
          "internalType": "Witnet.RadonHash",
          "name": "_radonHash",
          "type": "bytes32"
        }
      ],
      "name": "settlePriceFeedRadonHash",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "components": [
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bool",
              "name": "computeEma",
              "type": "bool"
            },
            {
              "internalType": "uint24",
              "name": "cooldownSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "heartbeatSecs",
              "type": "uint24"
            },
            {
              "internalType": "uint16",
              "name": "maxDeviation1000",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "minWitnesses",
              "type": "uint16"
            }
          ],
          "internalType": "struct IWitPriceFeedsTypes.UpdateConditions",
          "name": "_conditions",
          "type": "tuple"
        }
      ],
      "name": "settlePriceFeedUpdateConditions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "pushDataReport",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_witOracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DeviantPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HotPrice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidArgument\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidGovernanceTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateDataSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFreshUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PriceFeedNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PriceFeedNotFoundWithinRange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StalePrice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"master\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"clone\",\"type\":\"address\"}],\"name\":\"Cloned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"id4\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"caption\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"indexed\":false,\"internalType\":\"enum IWitPriceFeedsTypes.Mappers\",\"name\":\"mapper\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"dependencies\",\"type\":\"string[]\"}],\"name\":\"PriceFeedMapper\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"id4\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"caption\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"indexed\":false,\"internalType\":\"enum IWitPriceFeedsTypes.Oracles\",\"name\":\"oracle\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oracleSources\",\"type\":\"bytes32\"}],\"name\":\"PriceFeedOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"id4\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"caption\",\"type\":\"string\"}],\"name\":\"PriceFeedRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"ID4\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"indexed\":false,\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"}],\"name\":\"PriceFeedUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"publishTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"PriceFeedUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"id4\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"caption\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"conditions\",\"type\":\"tuple\"}],\"name\":\"PriceFeedUpdateConditions\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"base\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"class\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"}],\"name\":\"clone\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consumer\",\"outputs\":[{\"internalType\":\"contract IWitPriceFeedsConsumer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"name\":\"createChainlinkAggregator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultUpdateConditions\",\"outputs\":[{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"footprint\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"_footprint\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_age\",\"type\":\"uint64\"}],\"name\":\"getEmaPriceNotOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getEmaPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"getPrice\",\"outputs\":[{\"components\":[{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_age\",\"type\":\"uint64\"}],\"name\":\"getPriceNotOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"},{\"internalType\":\"uint24\",\"name\":\"_age\",\"type\":\"uint24\"}],\"name\":\"getPriceNotOlderThan\",\"outputs\":[{\"components\":[{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int64\",\"name\":\"price\",\"type\":\"int64\"},{\"internalType\":\"uint64\",\"name\":\"conf\",\"type\":\"uint64\"},{\"internalType\":\"int32\",\"name\":\"expo\",\"type\":\"int32\"},{\"internalType\":\"uint256\",\"name\":\"publishTime\",\"type\":\"uint256\"}],\"internalType\":\"struct IWitPyth.PythPrice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"getPriceUnsafe\",\"outputs\":[{\"components\":[{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Price\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getUpdateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"_defaultUpdateConditions\",\"type\":\"tuple\"}],\"name\":\"initializeClone\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"lookupPriceFeed\",\"outputs\":[{\"components\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"enum IWitPriceFeedsTypes.Mappers\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"deps\",\"type\":\"string[]\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Mapper\",\"name\":\"mapper\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IWitPriceFeedsTypes.Oracles\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"sources\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Oracle\",\"name\":\"oracle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"updateConditions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Price\",\"name\":\"lastUpdate\",\"type\":\"tuple\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Info\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"lookupPriceFeedCaption\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"lookupPriceFeedExponent\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"IWitPriceFeedsTypes.ID4\",\"name\":\"_id4\",\"type\":\"bytes4\"}],\"name\":\"lookupPriceFeedID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupPriceFeeds\",\"outputs\":[{\"components\":[{\"internalType\":\"IWitPyth.ID\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"enum IWitPriceFeedsTypes.Mappers\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"deps\",\"type\":\"string[]\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Mapper\",\"name\":\"mapper\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IWitPriceFeedsTypes.Oracles\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"sources\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Oracle\",\"name\":\"oracle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"updateConditions\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int8\",\"name\":\"exponent\",\"type\":\"int8\"},{\"internalType\":\"uint64\",\"name\":\"price\",\"type\":\"uint64\"},{\"internalType\":\"int56\",\"name\":\"deltaPrice\",\"type\":\"int56\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Price\",\"name\":\"lastUpdate\",\"type\":\"tuple\"}],\"internalType\":\"struct IWitPriceFeedsTypes.Info[]\",\"name\":\"_infos\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"report\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"pushDataReport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_recursively\",\"type\":\"bool\"}],\"name\":\"removePriceFeed\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"_footprint\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_consumer\",\"type\":\"address\"}],\"name\":\"settleConsumer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"_conditions\",\"type\":\"tuple\"}],\"name\":\"settleDefaultUpdateConditions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"int8\",\"name\":\"_exponent\",\"type\":\"int8\"},{\"internalType\":\"enum IWitPriceFeedsTypes.Mappers\",\"name\":\"_mapper\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"_deps\",\"type\":\"string[]\"}],\"name\":\"settlePriceFeedMapper\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"int8\",\"name\":\"_exponent\",\"type\":\"int8\"},{\"internalType\":\"enum IWitPriceFeedsTypes.Oracles\",\"name\":\"_oracle\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"_oracleAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_oracleSources\",\"type\":\"bytes32\"}],\"name\":\"settlePriceFeedOracle\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"int8\",\"name\":\"_exponent\",\"type\":\"int8\"},{\"internalType\":\"bytes\",\"name\":\"_radonBytecode\",\"type\":\"bytes\"}],\"name\":\"settlePriceFeedRadonBytecode\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"int8\",\"name\":\"_exponent\",\"type\":\"int8\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"_radonHash\",\"type\":\"bytes32\"}],\"name\":\"settlePriceFeedRadonHash\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint24\",\"name\":\"callbackGas\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"computeEma\",\"type\":\"bool\"},{\"internalType\":\"uint24\",\"name\":\"cooldownSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"heartbeatSecs\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"maxDeviation1000\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"minWitnesses\",\"type\":\"uint16\"}],\"internalType\":\"struct IWitPriceFeedsTypes.UpdateConditions\",\"name\":\"_conditions\",\"type\":\"tuple\"}],\"name\":\"settlePriceFeedUpdateConditions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"specs\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_caption\",\"type\":\"string\"}],\"name\":\"supportsCaption\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"valueFor\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"_value\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"_timestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_status\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witOracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Guillermo D\\u00edaz <guillermo@witnet.io>\",\"errors\":{\"DeviantPrice()\":[{\"details\":\"Signature: 0x7b0d2bb5\"}],\"HotPrice()\":[{\"details\":\"Signature: 0x0fbbc581\"}],\"InvalidArgument()\":[{\"details\":\"Signature: 0xa9cb9e0d\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUpdateData()\":[{\"details\":\"Signature: 0xe69ffece\"}],\"InvalidUpdateDataSource()\":[{\"details\":\"Signature: 0xe60dce71\"}],\"NoFreshUpdate()\":[{\"details\":\"Signature: 0xde2c57fa\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"PriceFeedNotFound()\":[{\"details\":\"Signature: 0x14aebe68\"}],\"PriceFeedNotFoundWithinRange()\":[{\"details\":\"Signature: 0x45805f5d\"}],\"StalePrice()\":[{\"details\":\"Signature: 0x19abf40e\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"PriceFeedUpdate(bytes32,uint64,int64,uint64)\":{\"details\":\"Emitted when the price feed with `id` has received a fresh update.\",\"params\":{\"id\":\"The Pyth Price Feed ID.\",\"price\":\"Price of the given price update.\",\"publishTime\":\"Publish time of the given price update.\"}}},\"kind\":\"dev\",\"methods\":{\"clone(address)\":{\"params\":{\"_curator\":\"Address that will have rights to manage price feeds on the new light-proxy clone.\"}},\"consumer()\":{\"details\":\"If zero, new price updates will not be reported to any other external address.The consumer contract must implement the `IWitPriceFeedsConsumer` interface, and accept this instance as source of truth.It can only be settled by a curator on cloned instances.It can only be settled by a curator, only on cloned instances.\"},\"createChainlinkAggregator(string)\":{\"details\":\"Reverts if symbol is not supported.\"},\"getEmaPrice(bytes32)\":{\"details\":\"Reverts if the EMA price is not available, or if the price feeds is settled with a heartbeat and the price was not recently updated.\",\"params\":{\"_id\":\"The Price Feed ID of which to fetch the EMA price.\"}},\"getEmaPriceNotOlderThan(bytes32,uint64)\":{\"details\":\"This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently.\"},\"getEmaPriceUnsafe(bytes32)\":{\"details\":\"This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `timestamp` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\"},\"getPrice(bytes32)\":{\"details\":\"Reverts if the price has not been updated within the last `heartbeatSecs`. \",\"params\":{\"_id\":\"The Price Feed ID of which to fetch the price.\"}},\"getPrice(bytes4)\":{\"details\":\"Reverts if: - `StalePrice()`: the price feed has not been updated within the last `UpdateConditions.heartbeatSecs`, - `DeviantPrice()`: a deviation greater than `UpdateConditions.maxDeviation1000` was detected upon last update attempt. - `InvalidGovernanceTarget()`: no EMA is curretly settled to be computed for this price feed.\",\"params\":{\"_id4\":\"Unique ID4 identifier of a price feed supported by this contract.\"}},\"getPriceNotOlderThan(bytes32,uint64)\":{\"details\":\"This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price.  Reverts if the price wasn't updated sufficiently recently.\"},\"getPriceNotOlderThan(bytes4,uint24)\":{\"details\":\"Reverts if: - `StalePrice()`: the price feed has not been updated within the last `_age` seconds, \",\"params\":{\"_age\":\"Maximum age of acceptable price value.\",\"_id4\":\"Unique ID4 identifier of a price feed supported by this contract.\"}},\"getPriceUnsafe(bytes32)\":{\"details\":\"This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past.  Users of this function should check the `timestamp` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\"},\"getPriceUnsafe(bytes4)\":{\"params\":{\"_id4\":\"Unique ID4 identifier of a price feed supported by this contract.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"}},\"title\":\"WitPriceFeedsV3: On-demand Price Feeds registry for EVM-compatible L1/L2 chains,  natively powered by the Wit/Oracle blockchain, but yet capable of aggregating price  updates from other on-chain price-feed oracles too, if required.  Price feeds purely relying on the Wit/Oracle present some advantanges, though: - Anyone can permissionless pull and report price updates on-chain. - Updating the price requires paying no extra \\\"update fees\\\". - Prices can be extracted from independent and highly reputed exchanges and data providers. - Actual data sources for each price feed can be introspected on-chain. - Data source traceability in the Wit/Oracle blockchain is possible for every single price update. Instances of this contract may also provide support for \\\"routed price feeds\\\" (computed as the  product or mean average of up to other 8 different price feeds), as well as \\\"cascade price feeds\\\"  (where multiple oracles could be used as backup when preferred ones don't manage to provide  fresh enough updates for whatever reason). Also, this contract allows simple plug-and-play integration from  smart contracts, dapps and DeFi projects currently adapted to operate with other price feed solutions, like Chainlink, or Pyth. \",\"version\":1},\"userdoc\":{\"errors\":{\"DeviantPrice()\":[{\"notice\":\"Requested price deviated too much after previous update.\"}],\"HotPrice()\":[{\"notice\":\"Attempting to update a price before cooldown period expires.\"}],\"InvalidArgument()\":[{\"notice\":\"Function arguments are invalid (e.g., the arguments lengths mismatch)\"}],\"InvalidGovernanceTarget()\":[{\"notice\":\"Either the number of witnesses that solved a price update is not within the settled range in this contract, or an EMA is being asked for a price feed that's not settled for the EMA to be computed. \"}],\"InvalidUpdateData()\":[{\"notice\":\"Update data is invalid (e.g. badly serialized, or bad proof was provided).\"}],\"InvalidUpdateDataSource()\":[{\"notice\":\"Update data is coming from an invalid Wit/Oracle Radon Hash.\"}],\"NoFreshUpdate()\":[{\"notice\":\"There is no fresh update, whereas expected fresh updates.\"}],\"PriceFeedNotFound()\":[{\"notice\":\"Price feed not found or it is not pushed on-chain yet.\"}],\"PriceFeedNotFoundWithinRange()\":[{\"notice\":\"There is no price feed found within the given range or it does not exist.\"}],\"StalePrice()\":[{\"notice\":\"Requested price is stale.\"}]},\"events\":{\"PriceFeedMapper(address,bytes4,string,int8,uint8,string[])\":{\"notice\":\"Emitted when a new routed price feed gets settled.\"},\"PriceFeedOracle(address,bytes4,string,int8,uint8,address,bytes32)\":{\"notice\":\"Emitted when a new oraclized price feed gets settled.\"},\"PriceFeedRemoved(address,bytes4,string)\":{\"notice\":\"Emitted when a price feeds gets removed from the list of supported price feeds.\"},\"PriceFeedUpdateConditions(address,bytes4,string,(uint24,bool,uint24,uint24,uint16,uint16))\":{\"notice\":\"Emitted when the update conditions of some existing price feed get altered.\"}},\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"=============================================================================================================== --- IWitPriceFeedsAdmin ---------------------------------------------------------------------------------------\"},\"base()\":{\"notice\":\"--- read-only methods -----------------------------------------------------------------------------------------\"},\"class()\":{\"notice\":\"Returns the name of the actual contract implementing the logic of this Witnet appliance.\"},\"clone(address)\":{\"notice\":\"Creates a light-proxy clone to the `base()` contract address, to be owned by the specified `curator` address.  Curators of cloned contracts can optionally settle one single `IWitPriceFeedConsumer` consuming contract.  The consuming contract, if settled, will be immediately reported every time a new Witnet-certified price update gets pushed into the cloned instance. Either way, price feeds data will be stored in the `WitPriceFeeds` storage. \"},\"cloned()\":{\"notice\":\"Tells whether this contract is a clone of `self()`\"},\"consumer()\":{\"notice\":\"Returns the consumer address where all price updates will be reported to.\"},\"createChainlinkAggregator(string)\":{\"notice\":\"Creates a Chainlink Aggregator proxy to the specified symbol.\"},\"defaultUpdateConditions()\":{\"notice\":\"Default update conditions that apply to brand new price feeds.\"},\"footprint()\":{\"notice\":\"Returns a unique hash determined by the combination of data sources being used by  supported non-routed price feeds, and dependencies of all supported routed  price feeds. The footprint changes if any price feed is modified, added, removed  or if the dependency tree of any routed price feed is altered.\"},\"getEmaPrice(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price.\"},\"getEmaPriceNotOlderThan(bytes32,uint64)\":{\"notice\":\"Returns the exponentially-weighted moving average price that is no older than `_age` seconds of the current time.\"},\"getEmaPriceUnsafe(bytes32)\":{\"notice\":\"Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\"},\"getPrice(bytes32)\":{\"notice\":\"Returns the price of given price feed.\"},\"getPrice(bytes4)\":{\"notice\":\"Returns last update price for the specified ID4 price feed. Note: This function is sanity-checked version of `getPriceUnsafe` which is useful in applications and smart contracts that require recentl updated price, and no hint of market deviation being currently excessive. \"},\"getPriceNotOlderThan(bytes32,uint64)\":{\"notice\":\"Returns the price that is no older than `_age` seconds of the current time.\"},\"getPriceNotOlderThan(bytes4,uint24)\":{\"notice\":\"Returns last known price if no older than `_age` seconds of the current time. Note: This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications and smart contracts that require last known non-deviant price, last updated within specified time range.\"},\"getPriceUnsafe(bytes32)\":{\"notice\":\"Returns the price of a price feed without any sanity checks.\"},\"getPriceUnsafe(bytes4)\":{\"notice\":\"Returns last updated price without any sanity checks. Note: This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `timestamp` of each price feed to ensure that the returned values  are sufficiently recent for their application. If you need safe access to fresh data, please consider using calling to either `getPrice` or `getPriceNoOlderThan` variants. \"},\"getUpdateFee(bytes)\":{\"notice\":\"Legacy-compliant to get the required fee to update an array of price updates, which would be always 0 if relying from the Wit/Oracle framework.\"},\"hash(string)\":{\"notice\":\"Determines unique ID for specified `symbol` string.\"},\"initialized()\":{\"notice\":\"=============================================================================================================== --- Clonable --------------------------------------------------------------------------------------------------\"},\"lookupPriceFeeds()\":{\"notice\":\"Returns last known price updates and deviations for all supported price feeds without any sanity checks.    \"},\"pushDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)\":{\"notice\":\"=============================================================================================================== --- IWitOracleConsumer ----------------------------------------------------------------------------------------\"},\"specs()\":{\"notice\":\"Returns the ERC-165 id of the minimal functionality expected for this appliance.\"},\"valueFor(bytes32)\":{\"notice\":\"=============================================================================================================== --- IERC2362 --------------------------------------------------------------------------------------------------\"},\"witOracle()\":{\"notice\":\"The Wit/Oracle core address accepted as source of truth.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/apps/WitPriceFeedsV3.sol\":\"WitPriceFeedsV3\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"ado-contracts/contracts/interfaces/IERC2362.sol\":{\"keccak256\":\"0x4df66aa83b94d7c3d52aba3522b6eeafc19f2c45299b7c871ef46eb199ee4f6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af92023c38ab97a95fb7e2a196a697cfc1d90bb1b8bfe73e0ba69cbb7a8f5ab\",\"dweb:/ipfs/QmVSBWxe2QCZvAxiuTfEwprK9MbDtFNptoWeMBbmUcwQnx\"]},\"project:/contracts/WitOracle.sol\":{\"keccak256\":\"0x7f20eab15140df459753dfa8e406b826918b56ebe2c46456f9d04345c02629d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0573ce3d48200c71d8235a1a8c055b706420b2037bd21336f3c61713c3b8349\",\"dweb:/ipfs/QmY7BnVaNXFtJs1BFdeaa7dQfvUVoZyfwtv9HuToCxUUHU\"]},\"project:/contracts/WitPriceFeeds.sol\":{\"keccak256\":\"0xc12c0f30c241d717f40063c8568d1e0aaaf61ba510f9cccfe4cfed21157f95d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb1e844ee7b4a0aa4fbc5adb64ee3f80aec9b8c8197eccb03d057640198a1fb\",\"dweb:/ipfs/QmQqDUAPCnqSid3DajiUf1QCxqN1SGof7D67fjG7dfwiCU\"]},\"project:/contracts/apps/WitPriceFeedsV3.sol\":{\"keccak256\":\"0x29980dd79bb44f013e05fe62cd16bc033bb175f1311394c56472cfc39aa39231\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef7e00cb43e5649616206695b63e79d666c3ecd302d21670fb69090096b38230\",\"dweb:/ipfs/QmWHxZzq6HDUPJT8vjjXqVwpXf19o6FX4pcBgwrZWTG4An\"]},\"project:/contracts/data/WitPriceFeedsDataLib.sol\":{\"keccak256\":\"0x6c018724f4a5fdde4c0581bf7e9c25518925fc76f86c8efee9a188da64eaf39a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143dd8e0cde80a88b4ff2c84f2d2a2b3207fc0201bc7a982689dfc6b90d8a357\",\"dweb:/ipfs/QmcF36BXaHTZ41bJfuukEQ74dksg37XWQ2FhvTd4iVQmNt\"]},\"project:/contracts/interfaces/IWitAppliance.sol\":{\"keccak256\":\"0xd207ca54a1049445a3d99eea497d9b34c6dbdd44d771eee825e4c031bd2f447e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f81de32d868ff2881ed6fe97cc897e40b4b11d23cbe53a0e23cf3e68f9c0f0a3\",\"dweb:/ipfs/QmeeXmzmK5MAzt7Hf5DB2L81efKtTzZg9VbQ8sUiTqEk5c\"]},\"project:/contracts/interfaces/IWitOracle.sol\":{\"keccak256\":\"0x26cbe2074c0b3f545a46d95fad5e2280b67edcd958e4ae0b88f3a018aa11b805\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5324bac61f65e3edb01c88b9b75ca17affd593be88da5753a93b3f5304d3f479\",\"dweb:/ipfs/QmcVmNV6smbFiPaxvuN8ShkqbDZsT1wfjnF7f3qs6ke7QG\"]},\"project:/contracts/interfaces/IWitOracleAppliance.sol\":{\"keccak256\":\"0xcd8e57eca7f8042c85a83264e2ff6d1cd7a9f1521831736d7f57bcc7800642e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c639668e9439d60770b5df77436088ae7bd0aeb1d1be446552a98b6c29138f0\",\"dweb:/ipfs/QmbN3f5YuKMSd2j9tjay3VEkiYibGWpbfbwRNyrxA8k4o4\"]},\"project:/contracts/interfaces/IWitOracleConsumer.sol\":{\"keccak256\":\"0x0091b5953897f5bec810d4fa22e43a9dbd5e01600994f6465e3fe14edab02a5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61862f8fd20ba0f619c4d6851affd39885c4bbbf1a7bd99e01ac472dae487a1b\",\"dweb:/ipfs/QmXuw1XaQmbSpcrZUhAzTnmnj3Vxna9D1Fg9Zwq5EnZRZK\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitPriceFeeds.sol\":{\"keccak256\":\"0xb29abe8819699e37e91b41c4cb63273fbb0ab8c482a09c31da6c91d7338cc405\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9325f3cbd3b396216268ec83d583abd86f44a5d656c375485296e256b3c2f2a\",\"dweb:/ipfs/Qme8pjdacDLa8HLKF7Sm3XZa9uUQn1EL7gANLnAbak8y4f\"]},\"project:/contracts/interfaces/IWitPriceFeedsAdmin.sol\":{\"keccak256\":\"0xd05b103840eeb8a4770e140dbe91bd40dd33d92959d226c57a2ae45a5e615355\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29e6104b0b62c676bb797ce8d01512550058f5b6de210b2467ba9bb0dfe8c00f\",\"dweb:/ipfs/QmUAgsVJYHqiRFrrnWCYo5vGJRaN4VsZvcBXJWYJUF5QyV\"]},\"project:/contracts/interfaces/IWitPriceFeedsConsumer.sol\":{\"keccak256\":\"0x2c12c7f4502a2953f352b67688cd8841a1198c9b8e8f9f87ab3fc0163b7533e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d82ec627ac4c38a7336b03541c118d606e107128ba109097857a26d376e92f33\",\"dweb:/ipfs/QmQBmvL5ziD7fY2vDBNpbDbbhnwi8Cwh4XVthUjTd9ZyCF\"]},\"project:/contracts/interfaces/IWitPriceFeedsEvents.sol\":{\"keccak256\":\"0xf8b1a2ca8dd8dc8a5b8debf18f4c32df404709a4b03353c939e57a92a4e41b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f755b639781013ae0bae92f063b1f5b440c187bbc9a7f938b6982e579114acfe\",\"dweb:/ipfs/QmZafsjeELGnVdbXvsiXeQ82vR7DBFCrwDLGqeopgxBgyC\"]},\"project:/contracts/interfaces/IWitPriceFeedsTypes.sol\":{\"keccak256\":\"0x68e2189e863f50e8d0aad8394a526df00c1e626886c23aa24c915427e5285e46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5ff40355d4144e7c08f033b55e9ef1b5994bbd83bbfbd7a41129b141f164194\",\"dweb:/ipfs/QmXMhM7GXaVXnCQ1VFB4kPhbhbfktuNFKqMGXMtWLgUk3d\"]},\"project:/contracts/interfaces/legacy/IChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x09750da5b74e684e13093320b00c8e95d648ddf58bfdb29b8bc3b90e6853c263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b08da33fc3e7cbf1f60965f82efdea926f2f62312298be29188eca9d109189ac\",\"dweb:/ipfs/QmR2sJ4dddcDW5q14usqiEeB7pamqHDfqkMDd9hghVMhiJ\"]},\"project:/contracts/interfaces/legacy/IPythChainlinkAggregatorV3.sol\":{\"keccak256\":\"0x768f729a0575850eab9bde8f57bea1f5761e6749b7c2de9a6c580594fad4a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3f6ca5693bec81a880f4d34e78f8de30bd783e25ae7b628a1a4ced4c73b8894\",\"dweb:/ipfs/QmXjajPrDiW9y1uwEaJhcsonJPWPYCdDegMoCQ6CkGPCL2\"]},\"project:/contracts/interfaces/legacy/IWitPyth.sol\":{\"keccak256\":\"0xa06a34a5e553beae7dbe09a5d1049557190511e696a1b855ab5e1196a06048a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2c814b7be5539147c0ba1b55f6cddcad382d5e5e9f9de545d2d428c1989c7de\",\"dweb:/ipfs/QmY8KSV3PW2FBQVzXidLQ21KvDJ1v6y8WHaV8uxsqThJCC\"]},\"project:/contracts/interfaces/legacy/IWitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xd34682fccc3ac1af39ef5f3bea61cd4ae8ee80862649678de5714a51177f4384\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://017eddcbf631cdc3e1a7f2c34478fe98697371b83d1985fa742e46a99c7b7a63\",\"dweb:/ipfs/QmbJ4XH8e2J79kuAtP1CcYftDfDUYf9NqxFDaKvSpzTGV2\"]},\"project:/contracts/interfaces/legacy/IWitPythErrors.sol\":{\"keccak256\":\"0x7d10dfd625a4914e4017cde140397f9f236f726ea82b4feed1d889f852866c1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5bbf8dc2bbac36cf0a141f7062b6ed8143cffaee7969a1afc3cf0d1971e8cf18\",\"dweb:/ipfs/QmbLiZwggZwhiTLJurBkAu492xAZZ9MXWiknsuGnLYNXhP\"]},\"project:/contracts/interfaces/legacy/IWitPythEvents.sol\":{\"keccak256\":\"0xacca21f4bb4d740de63f4f2e469e8313b1d8f9a7d2340efcc17981c3510c2800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da8b0493082593838fbc4df2431c1983a82165ae1f17215e988951c0c1ef3882\",\"dweb:/ipfs/QmNUX9K3UqxiR9igT87iLja8h3u7htp83ZhAGZ6UgD3BZP\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Slices.sol\":{\"keccak256\":\"0x9d046fa558be922c9625a1fdc470f6e68b3c9b5745b6185cb4a4fc59181fa006\",\"license\":\"APACHE-2.0\",\"urls\":[\"bzz-raw://ab19ba09faf83aaa92947f0a0907f6522be89279a9a1b0e53d5393a23085947d\",\"dweb:/ipfs/QmeE9MwhpSFNTwyqDFpMFjftrJKR1edBhLjV3bdKQQHUVm\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/mockups/WitPythChainlinkAggregator.sol\":{\"keccak256\":\"0xac58a4bb3652a2af7cae48d7463e265945a3b73976fd23b4041638f57ca946e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eaa9fb289349935abaa405efbc17d454f926803741fead72f7e2fbdc697ba86d\",\"dweb:/ipfs/QmTUJq2EGBXbovnKNTWE3bGoU1jzAQc7aVdFAu1esANrBJ\"]},\"project:/contracts/patterns/Clonable.sol\":{\"keccak256\":\"0x9a2dbc814306f60263fe736b88aeabc44fc241d3bed132e8dd76a3684dd825f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e665de5be06c9227c49f9466d24f798d4bed1a2db66d4d1368dcd9fc663c1b3a\",\"dweb:/ipfs/QmRjY2CHTGp1eyi9XPeTKr4WnPCzXbtk2285kdy2bJVCYA\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x45ed9d1f98e2a7a5bd1a7040dbd4292f1458fa1cb212d0143718684efa436bd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45d347c5ef492b33dcf3953bb3911fe7160a6c812e69ed84d2511f0847e19229\",\"dweb:/ipfs/QmZp3icE2gQBoJp8KorWC1GfGC8mK29sK9fEveKRMNCY1U\"]}},\"version\":1}",
  "bytecode": "0x60c060405230608052348015610013575f5ffd5b506040516157e53803806157e5833981016040819052610032916102c8565b6001600160a01b0381166100465733610048565b805b6001600160a01b03811661007657604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61007f81610242565b505f826001600160a01b03163b116100d95760405162461bcd60e51b815260206004820152601560248201527f696e6578697374656e74207769742f6f7261636c650000000000000000000000604482015260640161006d565b5f826001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610116573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013a91906102f9565b90506001600160e01b03198116636d11bc5160e11b148061016b57506001600160e01b031981166304722eaf60e31b145b6101b75760405162461bcd60e51b815260206004820152601660248201527f756e636f6d706c69616e74207769742f6f7261636c6500000000000000000000604482015260640161006d565b50506001600160a01b031660a09081526040805160c081018252620f424081525f6020820181905261038492820192909252620151806060820152608081019190915260039101527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390480546001600160701b0319166c030000015180000384000f4240179055610327565b600180546001600160a01b031916905561025b8161025e565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146102c3575f5ffd5b919050565b5f5f604083850312156102d9575f5ffd5b6102e2836102ad565b91506102f0602084016102ad565b90509250929050565b5f60208284031215610309575f5ffd5b81516001600160e01b031981168114610320575f5ffd5b9392505050565b60805160a05161546c6103795f395f818161029d01528181610fc0015281816112710152611c0b01525f81816103e90152818161175901528181611a880152818161297c0152612a29015261546c5ff3fe608060405234801561000f575f5ffd5b506004361061026b575f3560e01c8063974454091161014b578063c70f2f73116100bf578063e56bd31511610084578063e56bd31514610620578063e59a780814610633578063f2fde38b14610646578063f78eea8314610659578063fa78a97114610687578063fd91c0541461069a575f5ffd5b8063c70f2f73146105cc578063d9ea438f146105df578063e27b1088146105f2578063e30c397814610605578063e36a1d9e1461060d575f5ffd5b8063b411ee9411610110578063b411ee941461052f578063b4fd729614610542578063b5dcc911146103b4578063bff852fa14610572578063c5010d17146105a6578063c66f4c0a146105b9575f5ffd5b806397445409146104e75780639d61f28b1461034a578063a04daef014610507578063aba146ff1461050f578063adb7c3f714610522575f5ffd5b806367e559ac116101e25780638124b78e116101a75780638124b78e1461046b5780638a416ea91461047e5780638da5cb5b146104af5780639190795f146104bf5780639474f45b146104d457806396834ad3146104d4575f5ffd5b806367e559ac146104205780636d0d6a7e14610433578063715018a61461044857806379393a8b1461045057806379ba509714610463575f5ffd5b8063288b5e6711610233578063288b5e671461034a5780633108e1b81461039f57806331d98b3f146103b45780634c7510d0146103c75780635001f3b5146103e7578063608921931461040d575f5ffd5b80630683bcd21461026f5780631014d37514610298578063158ef93e146102d7578063238e0a8a14610304578063274d45db14610325575b5f5ffd5b61028261027d36600461332d565b6106ad565b60405161028f9190613555565b60405180910390f35b6102bf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028f565b5f5160206153f75f395f51905f5254600160601b900461ffff1615155b604051901515815260200161028f565b6103176103123660046135ab565b610a37565b60405190815260200161028f565b61033861033336600461332d565b610a3f565b6040515f9190910b815260200161028f565b61035d610358366004613608565b610a5c565b60405161028f9190815160070b81526020808301516001600160401b03169082015260408083015160030b908201526060918201519181019190915260800190565b6103a7610b69565b60405161028f9190613636565b61035d6103c2366004613699565b610c29565b6103da6103d53660046136bd565b610c87565b60405161028f919061370f565b7f00000000000000000000000000000000000000000000000000000000000000006102bf565b6103da61041b366004613731565b610e06565b6103da61042e3660046137f6565b610f96565b610446610441366004613876565b6111a2565b005b6104466116d1565b61044661045e3660046138f5565b6116e4565b61044661188e565b6102bf6104793660046138f5565b611896565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390554600160a01b900460e01b6103da565b5f546001600160a01b03166102bf565b6104c761191c565b60405161028f9190613910565b61035d6104e2366004613699565b61199b565b6104fa6104f536600461332d565b6119e1565b60405161028f919061391e565b6102f4611a7d565b61044661051d366004613942565b611aad565b6363708c9360e01b6103da565b61031761053d366004613a06565b611b1d565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53905546001600160a01b03166102bf565b60408051808201909152600f81526e57697450726963654665656473563360881b60208201525b60405161028f9190613a85565b6102f46105b43660046135ab565b611b27565b6104fa6105c736600461332d565b611b85565b6103da6105da366004613a97565b611be2565b6104fa6105ed366004613aff565b611deb565b61059961060036600461332d565b611e97565b6102bf611f30565b61031761061b36600461332d565b611f43565b6102bf61062e3660046135ab565b611f4d565b6103da610641366004613b2b565b61205e565b6104466106543660046138f5565b6120b6565b61066c610667366004613699565b6120ca565b6040805193845260208401929092529082015260600161028f565b610446610695366004613bad565b61220c565b6102bf6106a8366004613bfd565b612276565b6106b5613241565b5f6106bf8361242c565b6001810154909150600160501b900460ff1660605f8260048111156106e6576106e6613376565b14610859575f6106ff6001600160e01b03198716612468565b905080516001600160401b0381111561071a5761071a61395c565b60405190808252806020026020018201604052801561074d57816020015b60608152602001906001900390816107385790505b5091505f5b8151811015610856575f5160206154175f395f51905f526001015f83838151811061077f5761077f613c31565b60200260200101516001600160e01b0319166001600160e01b03191681526020019081526020015f205f0180546107b590613c45565b80601f01602080910402602001604051908101604052809291908181526020018280546107e190613c45565b801561082c5780601f106108035761010080835404028352916020019161082c565b820191905f5260205f20905b81548152906001019060200180831161080f57829003601f168201915b505050505083828151811061084357610843613c31565b6020908102919091010152600101610752565b50505b600183015460028401546040805160e08101909152600160581b830460ff1692600160601b90046001600160a01b031690806108948a612531565b81526001880154600160201b90045f0b6020820152875460409091019088906108bc90613c45565b80601f01602080910402602001604051908101604052809291908181526020018280546108e890613c45565b80156109335780601f1061090a57610100808354040283529160200191610933565b820191905f5260205f20905b81548152906001019060200180831161091657829003601f168201915b50505050508152602001604051806040016040528088600481111561095a5761095a613376565b8152602001878152508152602001604051806060016040528086600381111561098557610985613376565b8152602001846001600160a01b031681526020018581525081526020016109ae886004016125a3565b815260200173__WitPriceFeedsDataLib__________________63974454098b6040518263ffffffff1660e01b81526004016109ea919061370f565b60a060405180830381865af4158015610a05573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a299190613c93565b905298975050505050505050565b5f5b92915050565b5f610a498261242c565b60010154600160201b90045f0b92915050565b604080516080810182525f808252602082018190528183018190526060820152905163d9ea438f60e01b81526001600160e01b03198416600482015262ffffff83166024820152610b629073__WitPriceFeedsDataLib__________________9063d9ea438f906044015b60a060405180830381865af4158015610ae2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b069190613c93565b60408051608080820183525f80835260208084018290528385018290526060938401829052845192830185528581015160070b835282018190528451900b92810192909252918201516001600160401b03169181019190915290565b9392505050565b5f5160206154175f395f51905f528054606091906001600160401b03811115610b9457610b9461395c565b604051908082528060200260200182016040528015610bcd57816020015b610bba613241565b815260200190600190039081610bb25790505b5091505f5b8251811015610c2457610bff61027d838381548110610bf357610bf3613c31565b905f5260205f20015490565b838281518110610c1157610c11613c31565b6020908102919091010152600101610bd2565b505090565b604080516080810182525f808252602082018190529181018290526060810191909152610a3973__WitPriceFeedsDataLib__________________63c66f4c0a845b6040518263ffffffff1660e01b8152600401610ac7919061370f565b5f610c9061271c565b5f610cd5610cd286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b90565b6040516303e8c70160e51b81526001600160e01b031982166004820152841515602482015290915073__WitPriceFeedsDataLib__________________90637d18e020906044015f6040518083038186803b158015610d32575f5ffd5b505af4158015610d44573d5f5f3e3d5ffd5b50505050336001600160a01b03167f757500535198cca670e5ed07230e87648f077ff0ec74b0cef5df05db58a99618828787604051610d8593929190613d49565b60405180910390a273__WitPriceFeedsDataLib__________________63fce897db6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610dd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df89190613d6b565b95945050505050565b905090565b5f610e0f61271c565b6040516301d63b7f60e01b815273__WitPriceFeedsDataLib__________________906301d63b7f90610e50908a908a908a908a908a908a90600401613dc7565b602060405180830381865af4925050508015610e89575060408051601f3d908101601f19168201909252610e8691810190613d6b565b60015b610efc57610e95613e5a565b806308c379a003610ec35750610ea9613e72565b80610eb45750610ec5565b610ebd81612748565b50610f8c565b505b3d808015610eee576040519150601f19603f3d011682016040523d82523d5f602084013e610ef3565b606091505b50610ebd6127a6565b336001600160a01b03167fc15d7f9f6442190dc6f24107279211aeb0c9e831201b7660eb0dee70e4393804610f68610cd28b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8a8a8a8a8a8a604051610f819796959493929190613ef4565b60405180910390a290505b9695505050505050565b5f610f9f61271c565b73__WitPriceFeedsDataLib__________________630873d81d87878686897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103e9190613f97565b6040518763ffffffff1660e01b815260040161105f96959493929190613fb2565b6040805180830381865af4925050508015611097575060408051601f3d908101601f1916820190925261109491810190613ffe565b60015b61110a576110a3613e5a565b806308c379a0036110d157506110b7613e72565b806110c257506110d3565b6110cb81612748565b50610df8565b505b3d8080156110fc576040519150601f19603f3d011682016040523d82523d5f602084013e611101565b606091505b506110cb6127a6565b336001600160a01b03167fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b611176610cd28b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8a8a8a5f308860405161118f979695949392919061402a565b60405180910390a2509695505050505050565b6020838101355f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53903909152604090205460e01b6001600160e01b031981166112005760405163e60dce7160e01b815260040160405180910390fd5b5f61120a8261242c565b90505f611219826004016125a3565b60a081015190915061ffff16611235608088016060890161409b565b61ffff161015611258576040516363daeb7760e01b815260040160405180910390fd5b604051633686b53f60e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d0d6a7e906112aa908a908a908a906004016140b6565b5f604051808303815f875af11580156112c5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112ec91908101906142a5565b90505f815160ff81111561130257611302613376565b148015611324575060048160200151601381111561132257611322613376565b145b6113415760405163734fff6760e11b815260040160405180910390fd5b600583015460808201516001600160401b03600160c01b909204821691161161137d57604051636f162bfd60e11b815260040160405180910390fd5b604082015160058401546113a69162ffffff1690600160c01b90046001600160401b0316614374565b6001600160401b031681608001516001600160401b031610156113dc57604051630fbbc58160e01b815260040160405180910390fd5b60058301546080820151600160b81b82045f90810b92909161140d91600160c01b90046001600160401b0316614393565b600586015462ffffff919091169150600160401b90046001600160401b03165f611436856127d7565b90505f61144383836143b2565b90505f5f8260060b121561147f578361145b836143e1565b611467906103e8614405565b66ffffffffffffff1661147a919061442b565b61149f565b8361148c836103e8614405565b66ffffffffffffff1661149f919061442b565b9050876080015161ffff165f14806114c85750876080015161ffff16816001600160401b031611155b6114e557604051637b0d2bb560e01b815260040160405180910390fd5b60058901805460808901516001600160401b03908116600160c01b026001600160c01b03918716600160401b026fffffffffffffffff00000000000000001966ffffffffffffff8816600160801b021676ffffffffffffffffffffffffffffff000000000000000019909416939093179290921716179055604087015160068a01555f61157c5f5160206154175f395f51905f5290565b600501546001600160a01b03160361160b576080808801516040808a015181516001600160401b039384168152602081019190915291861690820152600684900b60608201525f88900b918101919091526001600160e01b03198b16907f0800977f281a92a8fb15f0b059791b2ffcc82fdc78be5227cec46afdb45f947d9060a00160405180910390a26116c2565b5f5160206154175f395f51905f526005015460808801516040808a0151905163292e503960e11b81526001600160e01b03198e1660048201526001600160401b03928316602482015260448101919091528186166064820152600685900b608482015290871660a48201525f88900b60c48201526001600160a01b039091169063525ca0729060e4015f604051808303815f87803b1580156116ab575f5ffd5b505af11580156116bd573d5f5f3e3d5ffd5b505050505b50505050505050505050505050565b6116d961271c565b6116e25f6128b2565b565b6116ec611a7d565b6117385760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b60448201526064015b60405180910390fd5b61174061271c565b61184d6001600160a01b038216301480159061178e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156117a357505f826001600160a01b03163b115b801561181f5750306001600160a01b0316826001600160a01b0316635f1cf1376040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118149190613f97565b6001600160a01b0316145b6040518060400160405280601081526020016f34b73b30b634b21031b7b739bab6b2b960811b8152506128cb565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390580546001600160a01b0319166001600160a01b0392909216919091179055565b6116e26128dd565b5f61189f612958565b604051633f64701560e21b81526001600160a01b03919091169063fd91c054906118dc9085905f5160206153f75f395f51905f5290600401614464565b6020604051808303815f875af11580156118f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a399190613f97565b6119246132d7565b506040805160c0810182525f5160206153f75f395f51905f525462ffffff808216835260ff630100000083041615156020840152600160201b8204811693830193909352600160381b8104909216606082015261ffff600160501b830481166080830152600160601b90920490911660a082015290565b604080516080810182525f808252602082018190529181018290526060810191909152610a3973__WitPriceFeedsDataLib__________________639744540984610c6b565b6040805160a0810182525f808252602082018190528183018190526060820181905260808201529051639744540960e01b815273__WitPriceFeedsDataLib__________________90639744540990611a3e90859060040161370f565b60a060405180830381865af4158015611a59573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a399190613c93565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141590565b611ab561271c565b611aff611acf611aca368490038401846144cc565b612a8b565b60405180604001604052806012815260200171696e76616c696420636f6e646974696f6e7360701b8152506128cb565b805f5160206153f75f395f51905f52611b188282614573565b505050565b5f610a3982612abf565b5f5f611b72611b6d610cd286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b61242c565b9050611b7d81612aee565b949350505050565b6040805160a0810182525f808252602082018190528183018190526060820181905260808201529051636337a60560e11b815273__WitPriceFeedsDataLib__________________9063c66f4c0a90611a3e90859060040161370f565b5f611beb61271c565b73__WitPriceFeedsDataLib__________________63ef0bf0a0868685877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c899190613f97565b6040518663ffffffff1660e01b8152600401611ca995949392919061467a565b602060405180830381865af4925050508015611ce2575060408051601f3d908101601f19168201909252611cdf91810190613d6b565b60015b611d5557611cee613e5a565b806308c379a003611d1c5750611d02613e72565b80611d0d5750611d1e565b611d1681612748565b50611b7d565b505b3d808015611d47576040519150601f19603f3d011682016040523d82523d5f602084013e611d4c565b606091505b50611d166127a6565b336001600160a01b03167fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b611dc1610cd289898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8888885f308a604051611dda979695949392919061402a565b60405180910390a295945050505050565b6040805160a0810182525f80825260208201819052818301819052606082018190526080820152905163d9ea438f60e01b81526001600160e01b03198416600482015262ffffff8316602482015273__WitPriceFeedsDataLib__________________9063d9ea438f9060440160a060405180830381865af4158015611e73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613c93565b6060611ea28261242c565b8054611ead90613c45565b80601f0160208091040260200160405190810160405280929190818152602001828054611ed990613c45565b8015611f245780601f10611efb57610100808354040283529160200191611f24565b820191905f5260205f20905b815481529060010190602001808311611f0757829003601f168201915b50505050509050919050565b5f610e016001546001600160a01b031690565b5f610a3982612531565b5f611f588383611b27565b611f7557604051630295d7cd60e31b815260040160405180910390fd5b5f60405180602001611f869061330b565b6020820181038252601f19601f8201166040525090505f30611fdf610cd287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b60405160609290921b6bffffffffffffffffffffffff191660208301526001600160e01b031916603482015260380160405160208183030381529060405290505f61202a8383612b43565b9050806001600160a01b03163b5f03610df8575f6120488484612bc4565b90505f8151602083015ff5979650505050505050565b5f61206761271c565b6120ab87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925088915087905086612bf0565b979650505050505050565b6120be61271c565b6120c781612ccd565b50565b5f808083816120d88261242c565b90505f6120e7826004016125a3565b6060810151604051631752c19f60e01b8152600481018590526001600160e01b03198616602482015262ffffff90911660448201529091505f9073__WitPriceFeedsDataLib__________________90631752c19f9060640160c060405180830381865af415801561215b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217f91906146b5565b80519091506001600160401b031661219b57806020015161219e565b80515b6001600160401b0316965080608001516001600160401b03169550855f146121f757816060015162ffffff1681608001516121d99190614374565b6001600160401b031642116121ef5760c86121fb565b6101906121fb565b6101945b61ffff169450505050509193909250565b61221461271c565b612229611acf611aca368490038401846144cc565b611b1883838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061227192505050368490038401846144cc565b612cfe565b5f61227f611a7d565b6122c65760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b604482015260640161172f565b5f6122cf612e22565b805490915060ff600160401b82041615906001600160401b03165f811580156122f55750825b90505f826001600160401b031660011480156123105750303b155b90508115801561231e575080155b1561233c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561236657845460ff60401b1916600160401b1785555b60408051808201909152600c81526b3d32b9379031bab930ba37b960a11b602082015261239f906001600160a01b038a161515906128cb565b6123a8886128b2565b6123bd611acf611aca368a90038a018a6144cc565b865f5160206153f75f395f51905f526123d68282614573565b5030965050831561242157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160205260408120610a39565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160209081526040918290206003015482516008808252610120820190945260609391929091908201610100803683370190505091505f5b600881101561252957816001600160e01b031981165f036124f05750612529565b8084838151811061250357612503613c31565b6001600160e01b03199092166020928302919091018201529290921b91506001016124cf565b825250919050565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160205260408120600101545f5160206154175f395f51905f528054909163ffffffff1690811061259357612593613c31565b905f5260205f2001549050919050565b6125ab6132d7565b6040805160c0810190915282545f5160206153f75f395f51905f529190819062ffffff16156125e057845462ffffff166125e8565b825462ffffff165b62ffffff16815284546020909101906301000000900460ff1680612614575082546301000000900460ff165b151581528454602090910190600160201b900462ffffff1615612644578454600160201b900462ffffff16612653565b8254600160201b900462ffffff165b62ffffff90811682528554602090920191600160381b90041615612684578454600160381b900462ffffff16612693565b8254600160381b900462ffffff165b62ffffff1681528454602090910190600160501b900461ffff16156126c4578454600160501b900461ffff166126d2565b8254600160501b900461ffff165b61ffff90811682528554602090920191600160601b90041615612701578454600160601b900461ffff1661270f565b8254600160601b900461ffff165b61ffff1690529392505050565b5f546001600160a01b031633146116e25760405163118cdaa760e01b815233600482015260240161172f565b60408051808201909152600f81526e57697450726963654665656473563360881b602082015281604051602001612780929190614754565b60408051601f198184030181529082905262461bcd60e51b825261172f91600401613a85565b6116e26040518060400160405280601081526020016f1d5b9a185b991b1959081c995d995c9d60821b815250612748565b5f8160046127e482612e4a565b15801561281657508060138111156127fe576127fe613376565b8260200151601381111561281457612814613376565b145b6128625760405162461bcd60e51b815260206004820152601760248201527f63626f723a2063616e6e6f742066657463682064617461000000000000000000604482015260640161172f565b61286f8460a00151612e57565b925061287e8260a00151612ea6565b8260200190601381111561289457612894613376565b908160138111156128a7576128a7613376565b815250505050919050565b600180546001600160a01b03191690556120c781612f6d565b816128d9576128d981612748565b5050565b33806128e7611f30565b6001600160a01b03161461294f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161172f565b6120c7816128b2565b5f5f6129be604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81527f000000000000000000000000000000000000000000000000000000000000000060601b60148201526e5af43d82803e903d91602b57fd5bf360881b602882015290565b90506037815ff091506001600160a01b038216612a1d5760405162461bcd60e51b815260206004820152601760248201527f436c6f6e61626c653a20435245415445206661696c6564000000000000000000604482015260640161172f565b6001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b80515f9062ffffff1615801590612aaa57505f826060015162ffffff16115b8015610a3957505060a0015161ffff16151590565b5f81604051602001612ad19190613a85565b604051602081830303815290604052805190602001209050919050565b60028101545f90151580612b2357506001820154600160501b900460ff166004811115612b1d57612b1d613376565b60ff1615155b80610a3957505060010154600160601b90046001600160a01b0316151590565b5f6001600160f81b03193082612b598686612bc4565b8051602091820120604051612ba595949392016001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209392505050565b60608282604051602001612bd9929190614774565b604051602081830303815290604052905092915050565b6040516001623c7a3760e21b031981525f9073__WitPriceFeedsDataLib__________________9063ff0e172490612c349089908990899089908990600401614788565b602060405180830381865af4925050508015612c6d575060408051601f3d908101601f19168201909252612c6a91810190613d6b565b60015b612c79576110a3613e5a565b337fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b612ca7610cd28a611b1d565b8989898989604051612cbe969594939291906147cd565b60405180910390a29050610df8565b612cd561271c565b6001600160a01b03811661294f57604051631e4fbdf760e01b81525f600482015260240161172f565b5f612d0b610cd284611b1d565b90505f612d178261242c565b835160048201805460208701516040880151606089015160808a015160a08b015162ffffff97881663ffffffff19909616959095176301000000851515021769ffffffffffff000000001916600160201b9388169390930262ffffff60381b191692909217600160381b96909116959095029490941763ffffffff60501b1916600160501b61ffff9586160261ffff60601b191617600160601b9490921693909302179055909150612dd75760058101805467ffffffffffffffff191690555b336001600160a01b03167ffce4e4e8186972930aa2a85773b7285ff9bd4d0b530ad546e582202e59f63abd838686604051612e1493929190614822565b60405180910390a250505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610a39565b5f610a39825f0151612fbc565b5f815f8060ff16826040015160ff1614612e9557604080830151905161800560e51b815260ff9182166004820152908216602482015260440161172f565b611b7d845f01518560600151612ff3565b5f612eba8251805151602090910151101590565b612f68576006826040015160ff1611612f025760408201516502020183808360d11b9060ff1660078110612ef057612ef0613c31565b1a6013811115610a3957610a39613376565b816040015160ff16600703612f6857816060015160ff1660141480612f2e5750816060015160ff166015145b15612f3b57506002919050565b6019826060015160ff1610158015612f5b5750601b826060015160ff1611155b15612f6857506005919050565b919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60f08260ff811115612fd157612fd1613376565b1480610a39575060f18260ff811115612fec57612fec613376565b1492915050565b5f60188260ff16101561300a575060ff8116610a39565b8160ff166018036130285761301e836130ba565b60ff169050610a39565b8160ff166019036130475761303c8361311a565b61ffff169050610a39565b8160ff16601a036130685761305b83613185565b63ffffffff169050610a39565b8160ff16601b036130835761307c836131e3565b9050610a39565b8160ff16601f0361309c57506001600160401b03610a39565b604051636d785b1360e01b815260ff8316600482015260240161172f565b5f8160200151825f015151808211156130f0576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b835160208501805180830160010151955090819061310d82614854565b8152505050505050919050565b5f8160200151600261312c919061486c565b8251518082111561315a576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600281840181015196509091613178828461486c565b9052509395945050505050565b5f81602001516004613197919061486c565b825151808211156131c5576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600481840181015196509091613178828461486c565b5f816020015160086131f5919061486c565b82515180821115613223576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600881840181015196509091613178828461486c565b6040518060e001604052805f81526020015f5f0b81526020016060815260200161327b604080518082019091525f81526060602082015290565b8152604080516060810182525f80825260208281018290529282015291019081526020016132a76132d7565b81526040805160a0810182525f808252602082810182905292820181905260608201819052608082015291015290565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915290565b610b778061488083390190565b6001600160e01b0319811681146120c7575f5ffd5b5f6020828403121561333d575f5ffd5b8135610b6281613318565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b5f52602160045260245ffd5b6005811061339a5761339a613376565b9052565b6004811061339a5761339a613376565b6133b982825161339e565b6020818101516001600160a01b031690830152604090810151910152565b62ffffff815116825260208101511515602083015262ffffff604082015116604083015262ffffff606082015116606083015261ffff608082015116608083015261ffff60a08201511660a08301525050565b80515f0b82526001600160401b036020820151166020830152604081015160060b60408301526001600160401b036060820151166060830152608081015160808301525050565b8051825260208101515f0b60208301525f6040820151610240604085015261349d610240850182613348565b905060608301518482036060860152604082016134bb83835161338a565b602091820151604084840152805191829052909101906060600582901b8401810191908401905f5b8181101561351557605f198685030183526134ff848651613348565b60209586019590945092909201916001016134e3565b5050506080850151925061352c60808701846133ae565b60a0850151925061354060e08701846133d7565b60c08501519250610df86101a087018461342a565b602081525f610b626020830184613471565b5f5f83601f840112613577575f5ffd5b5081356001600160401b0381111561358d575f5ffd5b6020830191508360208285010111156135a4575f5ffd5b9250929050565b5f5f602083850312156135bc575f5ffd5b82356001600160401b038111156135d1575f5ffd5b6135dd85828601613567565b90969095509350505050565b6001600160401b03811681146120c7575f5ffd5b8035612f68816135e9565b5f5f60408385031215613619575f5ffd5b82359150602083013561362b816135e9565b809150509250929050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561368d57603f19878603018452613678858351613471565b9450602093840193919091019060010161365c565b50929695505050505050565b5f602082840312156136a9575f5ffd5b5035919050565b80151581146120c7575f5ffd5b5f5f5f604084860312156136cf575f5ffd5b83356001600160401b038111156136e4575f5ffd5b6136f086828701613567565b9094509250506020840135613704816136b0565b809150509250925092565b6001600160e01b031991909116815260200190565b805f0b81146120c7575f5ffd5b5f5f5f5f5f5f60808789031215613746575f5ffd5b86356001600160401b0381111561375b575f5ffd5b61376789828a01613567565b909750955050602087013561377b81613724565b935060408701356005811061378e575f5ffd5b925060608701356001600160401b038111156137a8575f5ffd5b8701601f810189136137b8575f5ffd5b80356001600160401b038111156137cd575f5ffd5b8960208260051b84010111156137e1575f5ffd5b60208201935080925050509295509295509295565b5f5f5f5f5f6060868803121561380a575f5ffd5b85356001600160401b0381111561381f575f5ffd5b61382b88828901613567565b909650945050602086013561383f81613724565b925060408601356001600160401b03811115613859575f5ffd5b61386588828901613567565b969995985093965092949392505050565b5f5f5f60408486031215613888575f5ffd5b83356001600160401b0381111561389d575f5ffd5b840160e081870312156138ae575f5ffd5b925060208401356001600160401b038111156138c8575f5ffd5b6138d486828701613567565b9497909650939450505050565b6001600160a01b03811681146120c7575f5ffd5b5f60208284031215613905575f5ffd5b8135610b62816138e1565b60c08101610a3982846133d7565b60a08101610a39828461342a565b5f60c0828403121561393c575f5ffd5b50919050565b5f60c08284031215613952575f5ffd5b610b62838361392c565b634e487b7160e01b5f52604160045260245ffd5b60c081018181106001600160401b038211171561398f5761398f61395c565b60405250565b604081018181106001600160401b038211171561398f5761398f61395c565b601f8201601f191681016001600160401b03811182821017156139d9576139d961395c565b6040525050565b5f6001600160401b038211156139f8576139f861395c565b50601f01601f191660200190565b5f60208284031215613a16575f5ffd5b81356001600160401b03811115613a2b575f5ffd5b8201601f81018413613a3b575f5ffd5b8035613a46816139e0565b604051613a5382826139b4565b828152866020848601011115613a67575f5ffd5b826020850160208301375f9281016020019290925250949350505050565b602081525f610b626020830184613348565b5f5f5f5f60608587031215613aaa575f5ffd5b84356001600160401b03811115613abf575f5ffd5b613acb87828801613567565b9095509350506020850135613adf81613724565b9396929550929360400135925050565b62ffffff811681146120c7575f5ffd5b5f5f60408385031215613b10575f5ffd5b8235613b1b81613318565b9150602083013561362b81613aef565b5f5f5f5f5f5f60a08789031215613b40575f5ffd5b86356001600160401b03811115613b55575f5ffd5b613b6189828a01613567565b9097509550506020870135613b7581613724565b9350604087013560048110613b88575f5ffd5b92506060870135613b98816138e1565b95989497509295919493608090920135925050565b5f5f5f60e08486031215613bbf575f5ffd5b83356001600160401b03811115613bd4575f5ffd5b613be086828701613567565b9094509250613bf49050856020860161392c565b90509250925092565b5f5f60e08385031215613c0e575f5ffd5b8235613c19816138e1565b9150613c28846020850161392c565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680613c5957607f821691505b60208210810361393c57634e487b7160e01b5f52602260045260245ffd5b8051612f68816135e9565b8051600681900b8114612f68575f5ffd5b5f60a0828403128015613ca4575f5ffd5b5060405160a081016001600160401b0381118282101715613cc757613cc761395c565b6040528251613cd581613724565b81526020830151613ce5816135e9565b6020820152613cf660408401613c82565b60408201526060830151613d09816135e9565b60608201526080928301519281019290925250919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff60e01b84168152604060208201525f610df8604083018486613d21565b5f60208284031215613d7b575f5ffd5b8151610b6281613318565b5f5f8335601e19843603018112613d9b575f5ffd5b83016020810192503590506001600160401b03811115613db9575f5ffd5b8036038213156135a4575f5ffd5b608081525f613dda60808301888a613d21565b865f0b6020840152613def604084018761338a565b8281036060840152838152602080820190600586901b830101865f5b87811015613e4957848303601f19018452613e26828a613d86565b613e31858284613d21565b60209687019690955093909301925050600101613e0b565b50909b9a5050505050505050505050565b5f60033d1115610cd25760045f5f3e505f5160e01c90565b5f60443d1015613e7f5790565b6040513d600319016004823e80513d60248201116001600160401b0382111715613ea857505090565b80820180516001600160401b03811115613ec3575050505090565b3d8401600319018282016020011115613edd575050505090565b613eec602082850101856139b4565b509392505050565b63ffffffff60e01b8816815260a060208201525f613f1660a08301888a613d21565b865f0b6040840152613f2b606084018761338a565b8281036080840152838152602080820190600586901b830101865f5b87811015613f8557848303601f19018452613f62828a613d86565b613f6d858284613d21565b60209687019690955093909301925050600101613f47565b50909c9b505050505050505050505050565b5f60208284031215613fa7575f5ffd5b8151610b62816138e1565b608081525f613fc560808301888a613d21565b8281036020840152613fd8818789613d21565b5f9590950b604084015250506001600160a01b0391909116606090910152949350505050565b5f5f6040838503121561400f575f5ffd5b825161401a81613318565b6020939093015192949293505050565b63ffffffff60e01b8816815260c060208201525f61404c60c08301888a613d21565b9050855f0b6040830152614063606083018661339e565b6001600160a01b0393909316608082015260a0015295945050505050565b61ffff811681146120c7575f5ffd5b8035612f6881614081565b5f602082840312156140ab575f5ffd5b8135610b6281614081565b6040808252843582820152602085013560608301525f908501356140d981614081565b61ffff16608083015260608501356140f081614081565b61ffff1660a08301526080850135614107816135e9565b6001600160401b031660c083015261412160a086016135fd565b6001600160401b031660e083015261413c60c0860186613d86565b60e061010085015261415361012085018284613d21565b9150508281036020840152610f8c818587613d21565b805160148110612f68575f5ffd5b805160ff81168114612f68575f5ffd5b5f60c08284031215614197575f5ffd5b6040516141a381613970565b80915082516001600160401b038111156141bb575f5ffd5b8301604081860312156141cc575f5ffd5b6040516141d881613995565b81516001600160401b038111156141ed575f5ffd5b8201601f810187136141fd575f5ffd5b8051614208816139e0565b60405161421582826139b4565b828152896020848601011115614229575f5ffd5b8260208501602083015e5f60209382018401528452509283015182840152508252614255908401614177565b602082015261426660408401614177565b604082015261427760608401614177565b606082015261428860808401613c77565b608082015261429960a08401613c77565b60a08201525092915050565b5f602082840312156142b5575f5ffd5b81516001600160401b038111156142ca575f5ffd5b820160c081850312156142db575f5ffd5b6040516142e781613970565b815161010081106142f6575f5ffd5b815261430460208301614169565b6020820152604082810151908201526060808301519082015261432960808301613c77565b608082015260a08201516001600160401b03811115614346575f5ffd5b61435286828501614187565b60a083015250949350505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190811115610a3957610a39614360565b6001600160401b038281168282160390811115610a3957610a39614360565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff82131715610a3957610a39614360565b5f8160060b667fffffffffffff1981036143fd576143fd614360565b5f0392915050565b5f8260060b8260060b028060060b915080821461442457614424614360565b5092915050565b5f6001600160401b0383168061444f57634e487b7160e01b5f52601260045260245ffd5b806001600160401b0384160491505092915050565b6001600160a01b0383168152815462ffffff808216602080850191909152601883901c60ff161515604085015282901c81166060840152603882901c166080830152605081901c61ffff1660a083015260e0820190606081901c61ffff1660c0840152613eec565b5f60c08284031280156144dd575f5ffd5b506040516144ea81613970565b82356144f581613aef565b81526020830135614505816136b0565b6020820152604083013561451881613aef565b6040820152606083013561452b81613aef565b6060820152608083013561453e81614081565b608082015261454f60a08401614090565b60a08201529392505050565b5f8135610a3981613aef565b5f8135610a3981614081565b813561457e81613aef565b62ffffff8116905081548162ffffff19821617835560208401356145a1816136b0565b63ffffffff199190911690911790151560181b63ff000000161781555f60408301356145cc81613aef565b825466ffffff00000000191660209190911b66ffffff00000000161782555061461c6145fa6060840161455b565b825462ffffff60381b191660389190911b69ffffff0000000000000016178255565b61464b61462b60808401614567565b82805461ffff60501b191660509290921b61ffff60501b16919091179055565b6128d961465a60a08401614567565b82805461ffff60601b191660609290921b61ffff60601b16919091179055565b608081525f61468d608083018789613d21565b6020830195909552505f9290920b60408301526001600160a01b031660609091015292915050565b5f60c08284031280156146c6575f5ffd5b506040516146d381613970565b82516146de816135e9565b815260208301516146ee816135e9565b60208201526146ff60408401613c82565b6040820152606083015161471281613724565b60608201526080830151614725816135e9565b608082015260a0928301519281019290925250919050565b5f81518060208401855e5f93019283525090919050565b5f61475f828561473d565b6101d160f51b8152610df8600282018561473d565b5f611b7d614782838661473d565b8461473d565b60a081525f61479a60a0830188613348565b9050855f0b60208301526147b1604083018661339e565b6001600160a01b03939093166060820152608001529392505050565b63ffffffff60e01b8716815260c060208201525f6147ee60c0830188613348565b9050855f0b6040830152614805606083018661339e565b6001600160a01b0393909316608082015260a00152949350505050565b63ffffffff60e01b8416815261010060208201525f614845610100830185613348565b9050611b7d60408301846133d7565b5f6001820161486557614865614360565b5060010190565b80820180821115610a3957610a3961436056fe610100604052348015610010575f5ffd5b50604051610b77380380610b7783398101604081905261002f916100c1565b6001600160e01b0319811660808190526040516371b50ecf60e11b815260048101919091526001600160a01b0383169063e36a1d9e90602401602060405180830381865afa158015610083573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a79190610110565b60a052506001600160a01b031660c081905260e052610127565b5f5f604083850312156100d2575f5ffd5b82516001600160a01b03811681146100e8575f5ffd5b60208401519092506001600160e01b031981168114610105575f5ffd5b809150509250929050565b5f60208284031215610120575f5ffd5b5051919050565b60805160a05160c05160e0516109d16101a65f395f818160ee01528181610322015281816103f4015281816104cb01528181610569015261065701525f61024e01525f61013201525f818161021a015281816102970152818161035101528181610423015281816104f801528181610598015261068601526109d15ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033c5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53904c5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53900a2646970667358221220ac33583edc87c48d0ca8c2047a358b039b864931ab08275da36fc2149528dea764736f6c634300081e0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061026b575f3560e01c8063974454091161014b578063c70f2f73116100bf578063e56bd31511610084578063e56bd31514610620578063e59a780814610633578063f2fde38b14610646578063f78eea8314610659578063fa78a97114610687578063fd91c0541461069a575f5ffd5b8063c70f2f73146105cc578063d9ea438f146105df578063e27b1088146105f2578063e30c397814610605578063e36a1d9e1461060d575f5ffd5b8063b411ee9411610110578063b411ee941461052f578063b4fd729614610542578063b5dcc911146103b4578063bff852fa14610572578063c5010d17146105a6578063c66f4c0a146105b9575f5ffd5b806397445409146104e75780639d61f28b1461034a578063a04daef014610507578063aba146ff1461050f578063adb7c3f714610522575f5ffd5b806367e559ac116101e25780638124b78e116101a75780638124b78e1461046b5780638a416ea91461047e5780638da5cb5b146104af5780639190795f146104bf5780639474f45b146104d457806396834ad3146104d4575f5ffd5b806367e559ac146104205780636d0d6a7e14610433578063715018a61461044857806379393a8b1461045057806379ba509714610463575f5ffd5b8063288b5e6711610233578063288b5e671461034a5780633108e1b81461039f57806331d98b3f146103b45780634c7510d0146103c75780635001f3b5146103e7578063608921931461040d575f5ffd5b80630683bcd21461026f5780631014d37514610298578063158ef93e146102d7578063238e0a8a14610304578063274d45db14610325575b5f5ffd5b61028261027d36600461332d565b6106ad565b60405161028f9190613555565b60405180910390f35b6102bf7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028f565b5f5160206153f75f395f51905f5254600160601b900461ffff1615155b604051901515815260200161028f565b6103176103123660046135ab565b610a37565b60405190815260200161028f565b61033861033336600461332d565b610a3f565b6040515f9190910b815260200161028f565b61035d610358366004613608565b610a5c565b60405161028f9190815160070b81526020808301516001600160401b03169082015260408083015160030b908201526060918201519181019190915260800190565b6103a7610b69565b60405161028f9190613636565b61035d6103c2366004613699565b610c29565b6103da6103d53660046136bd565b610c87565b60405161028f919061370f565b7f00000000000000000000000000000000000000000000000000000000000000006102bf565b6103da61041b366004613731565b610e06565b6103da61042e3660046137f6565b610f96565b610446610441366004613876565b6111a2565b005b6104466116d1565b61044661045e3660046138f5565b6116e4565b61044661188e565b6102bf6104793660046138f5565b611896565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390554600160a01b900460e01b6103da565b5f546001600160a01b03166102bf565b6104c761191c565b60405161028f9190613910565b61035d6104e2366004613699565b61199b565b6104fa6104f536600461332d565b6119e1565b60405161028f919061391e565b6102f4611a7d565b61044661051d366004613942565b611aad565b6363708c9360e01b6103da565b61031761053d366004613a06565b611b1d565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53905546001600160a01b03166102bf565b60408051808201909152600f81526e57697450726963654665656473563360881b60208201525b60405161028f9190613a85565b6102f46105b43660046135ab565b611b27565b6104fa6105c736600461332d565b611b85565b6103da6105da366004613a97565b611be2565b6104fa6105ed366004613aff565b611deb565b61059961060036600461332d565b611e97565b6102bf611f30565b61031761061b36600461332d565b611f43565b6102bf61062e3660046135ab565b611f4d565b6103da610641366004613b2b565b61205e565b6104466106543660046138f5565b6120b6565b61066c610667366004613699565b6120ca565b6040805193845260208401929092529082015260600161028f565b610446610695366004613bad565b61220c565b6102bf6106a8366004613bfd565b612276565b6106b5613241565b5f6106bf8361242c565b6001810154909150600160501b900460ff1660605f8260048111156106e6576106e6613376565b14610859575f6106ff6001600160e01b03198716612468565b905080516001600160401b0381111561071a5761071a61395c565b60405190808252806020026020018201604052801561074d57816020015b60608152602001906001900390816107385790505b5091505f5b8151811015610856575f5160206154175f395f51905f526001015f83838151811061077f5761077f613c31565b60200260200101516001600160e01b0319166001600160e01b03191681526020019081526020015f205f0180546107b590613c45565b80601f01602080910402602001604051908101604052809291908181526020018280546107e190613c45565b801561082c5780601f106108035761010080835404028352916020019161082c565b820191905f5260205f20905b81548152906001019060200180831161080f57829003601f168201915b505050505083828151811061084357610843613c31565b6020908102919091010152600101610752565b50505b600183015460028401546040805160e08101909152600160581b830460ff1692600160601b90046001600160a01b031690806108948a612531565b81526001880154600160201b90045f0b6020820152875460409091019088906108bc90613c45565b80601f01602080910402602001604051908101604052809291908181526020018280546108e890613c45565b80156109335780601f1061090a57610100808354040283529160200191610933565b820191905f5260205f20905b81548152906001019060200180831161091657829003601f168201915b50505050508152602001604051806040016040528088600481111561095a5761095a613376565b8152602001878152508152602001604051806060016040528086600381111561098557610985613376565b8152602001846001600160a01b031681526020018581525081526020016109ae886004016125a3565b815260200173__WitPriceFeedsDataLib__________________63974454098b6040518263ffffffff1660e01b81526004016109ea919061370f565b60a060405180830381865af4158015610a05573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a299190613c93565b905298975050505050505050565b5f5b92915050565b5f610a498261242c565b60010154600160201b90045f0b92915050565b604080516080810182525f808252602082018190528183018190526060820152905163d9ea438f60e01b81526001600160e01b03198416600482015262ffffff83166024820152610b629073__WitPriceFeedsDataLib__________________9063d9ea438f906044015b60a060405180830381865af4158015610ae2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b069190613c93565b60408051608080820183525f80835260208084018290528385018290526060938401829052845192830185528581015160070b835282018190528451900b92810192909252918201516001600160401b03169181019190915290565b9392505050565b5f5160206154175f395f51905f528054606091906001600160401b03811115610b9457610b9461395c565b604051908082528060200260200182016040528015610bcd57816020015b610bba613241565b815260200190600190039081610bb25790505b5091505f5b8251811015610c2457610bff61027d838381548110610bf357610bf3613c31565b905f5260205f20015490565b838281518110610c1157610c11613c31565b6020908102919091010152600101610bd2565b505090565b604080516080810182525f808252602082018190529181018290526060810191909152610a3973__WitPriceFeedsDataLib__________________63c66f4c0a845b6040518263ffffffff1660e01b8152600401610ac7919061370f565b5f610c9061271c565b5f610cd5610cd286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b90565b6040516303e8c70160e51b81526001600160e01b031982166004820152841515602482015290915073__WitPriceFeedsDataLib__________________90637d18e020906044015f6040518083038186803b158015610d32575f5ffd5b505af4158015610d44573d5f5f3e3d5ffd5b50505050336001600160a01b03167f757500535198cca670e5ed07230e87648f077ff0ec74b0cef5df05db58a99618828787604051610d8593929190613d49565b60405180910390a273__WitPriceFeedsDataLib__________________63fce897db6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610dd4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df89190613d6b565b95945050505050565b905090565b5f610e0f61271c565b6040516301d63b7f60e01b815273__WitPriceFeedsDataLib__________________906301d63b7f90610e50908a908a908a908a908a908a90600401613dc7565b602060405180830381865af4925050508015610e89575060408051601f3d908101601f19168201909252610e8691810190613d6b565b60015b610efc57610e95613e5a565b806308c379a003610ec35750610ea9613e72565b80610eb45750610ec5565b610ebd81612748565b50610f8c565b505b3d808015610eee576040519150601f19603f3d011682016040523d82523d5f602084013e610ef3565b606091505b50610ebd6127a6565b336001600160a01b03167fc15d7f9f6442190dc6f24107279211aeb0c9e831201b7660eb0dee70e4393804610f68610cd28b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8a8a8a8a8a8a604051610f819796959493929190613ef4565b60405180910390a290505b9695505050505050565b5f610f9f61271c565b73__WitPriceFeedsDataLib__________________630873d81d87878686897f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103e9190613f97565b6040518763ffffffff1660e01b815260040161105f96959493929190613fb2565b6040805180830381865af4925050508015611097575060408051601f3d908101601f1916820190925261109491810190613ffe565b60015b61110a576110a3613e5a565b806308c379a0036110d157506110b7613e72565b806110c257506110d3565b6110cb81612748565b50610df8565b505b3d8080156110fc576040519150601f19603f3d011682016040523d82523d5f602084013e611101565b606091505b506110cb6127a6565b336001600160a01b03167fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b611176610cd28b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8a8a8a5f308860405161118f979695949392919061402a565b60405180910390a2509695505050505050565b6020838101355f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53903909152604090205460e01b6001600160e01b031981166112005760405163e60dce7160e01b815260040160405180910390fd5b5f61120a8261242c565b90505f611219826004016125a3565b60a081015190915061ffff16611235608088016060890161409b565b61ffff161015611258576040516363daeb7760e01b815260040160405180910390fd5b604051633686b53f60e11b81525f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636d0d6a7e906112aa908a908a908a906004016140b6565b5f604051808303815f875af11580156112c5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112ec91908101906142a5565b90505f815160ff81111561130257611302613376565b148015611324575060048160200151601381111561132257611322613376565b145b6113415760405163734fff6760e11b815260040160405180910390fd5b600583015460808201516001600160401b03600160c01b909204821691161161137d57604051636f162bfd60e11b815260040160405180910390fd5b604082015160058401546113a69162ffffff1690600160c01b90046001600160401b0316614374565b6001600160401b031681608001516001600160401b031610156113dc57604051630fbbc58160e01b815260040160405180910390fd5b60058301546080820151600160b81b82045f90810b92909161140d91600160c01b90046001600160401b0316614393565b600586015462ffffff919091169150600160401b90046001600160401b03165f611436856127d7565b90505f61144383836143b2565b90505f5f8260060b121561147f578361145b836143e1565b611467906103e8614405565b66ffffffffffffff1661147a919061442b565b61149f565b8361148c836103e8614405565b66ffffffffffffff1661149f919061442b565b9050876080015161ffff165f14806114c85750876080015161ffff16816001600160401b031611155b6114e557604051637b0d2bb560e01b815260040160405180910390fd5b60058901805460808901516001600160401b03908116600160c01b026001600160c01b03918716600160401b026fffffffffffffffff00000000000000001966ffffffffffffff8816600160801b021676ffffffffffffffffffffffffffffff000000000000000019909416939093179290921716179055604087015160068a01555f61157c5f5160206154175f395f51905f5290565b600501546001600160a01b03160361160b576080808801516040808a015181516001600160401b039384168152602081019190915291861690820152600684900b60608201525f88900b918101919091526001600160e01b03198b16907f0800977f281a92a8fb15f0b059791b2ffcc82fdc78be5227cec46afdb45f947d9060a00160405180910390a26116c2565b5f5160206154175f395f51905f526005015460808801516040808a0151905163292e503960e11b81526001600160e01b03198e1660048201526001600160401b03928316602482015260448101919091528186166064820152600685900b608482015290871660a48201525f88900b60c48201526001600160a01b039091169063525ca0729060e4015f604051808303815f87803b1580156116ab575f5ffd5b505af11580156116bd573d5f5f3e3d5ffd5b505050505b50505050505050505050505050565b6116d961271c565b6116e25f6128b2565b565b6116ec611a7d565b6117385760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b60448201526064015b60405180910390fd5b61174061271c565b61184d6001600160a01b038216301480159061178e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156117a357505f826001600160a01b03163b115b801561181f5750306001600160a01b0316826001600160a01b0316635f1cf1376040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118149190613f97565b6001600160a01b0316145b6040518060400160405280601081526020016f34b73b30b634b21031b7b739bab6b2b960811b8152506128cb565b7fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390580546001600160a01b0319166001600160a01b0392909216919091179055565b6116e26128dd565b5f61189f612958565b604051633f64701560e21b81526001600160a01b03919091169063fd91c054906118dc9085905f5160206153f75f395f51905f5290600401614464565b6020604051808303815f875af11580156118f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a399190613f97565b6119246132d7565b506040805160c0810182525f5160206153f75f395f51905f525462ffffff808216835260ff630100000083041615156020840152600160201b8204811693830193909352600160381b8104909216606082015261ffff600160501b830481166080830152600160601b90920490911660a082015290565b604080516080810182525f808252602082018190529181018290526060810191909152610a3973__WitPriceFeedsDataLib__________________639744540984610c6b565b6040805160a0810182525f808252602082018190528183018190526060820181905260808201529051639744540960e01b815273__WitPriceFeedsDataLib__________________90639744540990611a3e90859060040161370f565b60a060405180830381865af4158015611a59573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a399190613c93565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141590565b611ab561271c565b611aff611acf611aca368490038401846144cc565b612a8b565b60405180604001604052806012815260200171696e76616c696420636f6e646974696f6e7360701b8152506128cb565b805f5160206153f75f395f51905f52611b188282614573565b505050565b5f610a3982612abf565b5f5f611b72611b6d610cd286868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b61242c565b9050611b7d81612aee565b949350505050565b6040805160a0810182525f808252602082018190528183018190526060820181905260808201529051636337a60560e11b815273__WitPriceFeedsDataLib__________________9063c66f4c0a90611a3e90859060040161370f565b5f611beb61271c565b73__WitPriceFeedsDataLib__________________63ef0bf0a0868685877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637b1039996040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c899190613f97565b6040518663ffffffff1660e01b8152600401611ca995949392919061467a565b602060405180830381865af4925050508015611ce2575060408051601f3d908101601f19168201909252611cdf91810190613d6b565b60015b611d5557611cee613e5a565b806308c379a003611d1c5750611d02613e72565b80611d0d5750611d1e565b611d1681612748565b50611b7d565b505b3d808015611d47576040519150601f19603f3d011682016040523d82523d5f602084013e611d4c565b606091505b50611d166127a6565b336001600160a01b03167fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b611dc1610cd289898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b8888885f308a604051611dda979695949392919061402a565b60405180910390a295945050505050565b6040805160a0810182525f80825260208201819052818301819052606082018190526080820152905163d9ea438f60e01b81526001600160e01b03198416600482015262ffffff8316602482015273__WitPriceFeedsDataLib__________________9063d9ea438f9060440160a060405180830381865af4158015611e73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190613c93565b6060611ea28261242c565b8054611ead90613c45565b80601f0160208091040260200160405190810160405280929190818152602001828054611ed990613c45565b8015611f245780601f10611efb57610100808354040283529160200191611f24565b820191905f5260205f20905b815481529060010190602001808311611f0757829003601f168201915b50505050509050919050565b5f610e016001546001600160a01b031690565b5f610a3982612531565b5f611f588383611b27565b611f7557604051630295d7cd60e31b815260040160405180910390fd5b5f60405180602001611f869061330b565b6020820181038252601f19601f8201166040525090505f30611fdf610cd287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611b1d92505050565b60405160609290921b6bffffffffffffffffffffffff191660208301526001600160e01b031916603482015260380160405160208183030381529060405290505f61202a8383612b43565b9050806001600160a01b03163b5f03610df8575f6120488484612bc4565b90505f8151602083015ff5979650505050505050565b5f61206761271c565b6120ab87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525089925088915087905086612bf0565b979650505050505050565b6120be61271c565b6120c781612ccd565b50565b5f808083816120d88261242c565b90505f6120e7826004016125a3565b6060810151604051631752c19f60e01b8152600481018590526001600160e01b03198616602482015262ffffff90911660448201529091505f9073__WitPriceFeedsDataLib__________________90631752c19f9060640160c060405180830381865af415801561215b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217f91906146b5565b80519091506001600160401b031661219b57806020015161219e565b80515b6001600160401b0316965080608001516001600160401b03169550855f146121f757816060015162ffffff1681608001516121d99190614374565b6001600160401b031642116121ef5760c86121fb565b6101906121fb565b6101945b61ffff169450505050509193909250565b61221461271c565b612229611acf611aca368490038401846144cc565b611b1883838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061227192505050368490038401846144cc565b612cfe565b5f61227f611a7d565b6122c65760405162461bcd60e51b8152602060048201526018602482015277436c6f6e61626c653a206f6e6c79206f6e20636c6f6e657360401b604482015260640161172f565b5f6122cf612e22565b805490915060ff600160401b82041615906001600160401b03165f811580156122f55750825b90505f826001600160401b031660011480156123105750303b155b90508115801561231e575080155b1561233c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561236657845460ff60401b1916600160401b1785555b60408051808201909152600c81526b3d32b9379031bab930ba37b960a11b602082015261239f906001600160a01b038a161515906128cb565b6123a8886128b2565b6123bd611acf611aca368a90038a018a6144cc565b865f5160206153f75f395f51905f526123d68282614573565b5030965050831561242157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505092915050565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160205260408120610a39565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160209081526040918290206003015482516008808252610120820190945260609391929091908201610100803683370190505091505f5b600881101561252957816001600160e01b031981165f036124f05750612529565b8084838151811061250357612503613c31565b6001600160e01b03199092166020928302919091018201529290921b91506001016124cf565b825250919050565b6001600160e01b031981165f9081527fc5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba5390160205260408120600101545f5160206154175f395f51905f528054909163ffffffff1690811061259357612593613c31565b905f5260205f2001549050919050565b6125ab6132d7565b6040805160c0810190915282545f5160206153f75f395f51905f529190819062ffffff16156125e057845462ffffff166125e8565b825462ffffff165b62ffffff16815284546020909101906301000000900460ff1680612614575082546301000000900460ff165b151581528454602090910190600160201b900462ffffff1615612644578454600160201b900462ffffff16612653565b8254600160201b900462ffffff165b62ffffff90811682528554602090920191600160381b90041615612684578454600160381b900462ffffff16612693565b8254600160381b900462ffffff165b62ffffff1681528454602090910190600160501b900461ffff16156126c4578454600160501b900461ffff166126d2565b8254600160501b900461ffff165b61ffff90811682528554602090920191600160601b90041615612701578454600160601b900461ffff1661270f565b8254600160601b900461ffff165b61ffff1690529392505050565b5f546001600160a01b031633146116e25760405163118cdaa760e01b815233600482015260240161172f565b60408051808201909152600f81526e57697450726963654665656473563360881b602082015281604051602001612780929190614754565b60408051601f198184030181529082905262461bcd60e51b825261172f91600401613a85565b6116e26040518060400160405280601081526020016f1d5b9a185b991b1959081c995d995c9d60821b815250612748565b5f8160046127e482612e4a565b15801561281657508060138111156127fe576127fe613376565b8260200151601381111561281457612814613376565b145b6128625760405162461bcd60e51b815260206004820152601760248201527f63626f723a2063616e6e6f742066657463682064617461000000000000000000604482015260640161172f565b61286f8460a00151612e57565b925061287e8260a00151612ea6565b8260200190601381111561289457612894613376565b908160138111156128a7576128a7613376565b815250505050919050565b600180546001600160a01b03191690556120c781612f6d565b816128d9576128d981612748565b5050565b33806128e7611f30565b6001600160a01b03161461294f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161172f565b6120c7816128b2565b5f5f6129be604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81527f000000000000000000000000000000000000000000000000000000000000000060601b60148201526e5af43d82803e903d91602b57fd5bf360881b602882015290565b90506037815ff091506001600160a01b038216612a1d5760405162461bcd60e51b815260206004820152601760248201527f436c6f6e61626c653a20435245415445206661696c6564000000000000000000604482015260640161172f565b6001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b80515f9062ffffff1615801590612aaa57505f826060015162ffffff16115b8015610a3957505060a0015161ffff16151590565b5f81604051602001612ad19190613a85565b604051602081830303815290604052805190602001209050919050565b60028101545f90151580612b2357506001820154600160501b900460ff166004811115612b1d57612b1d613376565b60ff1615155b80610a3957505060010154600160601b90046001600160a01b0316151590565b5f6001600160f81b03193082612b598686612bc4565b8051602091820120604051612ba595949392016001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051601f1981840301815291905280516020909101209392505050565b60608282604051602001612bd9929190614774565b604051602081830303815290604052905092915050565b6040516001623c7a3760e21b031981525f9073__WitPriceFeedsDataLib__________________9063ff0e172490612c349089908990899089908990600401614788565b602060405180830381865af4925050508015612c6d575060408051601f3d908101601f19168201909252612c6a91810190613d6b565b60015b612c79576110a3613e5a565b337fae160f4bc68d30bb720cf2faa436df303e1cb02624a87bf4af0a30d51783d87b612ca7610cd28a611b1d565b8989898989604051612cbe969594939291906147cd565b60405180910390a29050610df8565b612cd561271c565b6001600160a01b03811661294f57604051631e4fbdf760e01b81525f600482015260240161172f565b5f612d0b610cd284611b1d565b90505f612d178261242c565b835160048201805460208701516040880151606089015160808a015160a08b015162ffffff97881663ffffffff19909616959095176301000000851515021769ffffffffffff000000001916600160201b9388169390930262ffffff60381b191692909217600160381b96909116959095029490941763ffffffff60501b1916600160501b61ffff9586160261ffff60601b191617600160601b9490921693909302179055909150612dd75760058101805467ffffffffffffffff191690555b336001600160a01b03167ffce4e4e8186972930aa2a85773b7285ff9bd4d0b530ad546e582202e59f63abd838686604051612e1493929190614822565b60405180910390a250505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610a39565b5f610a39825f0151612fbc565b5f815f8060ff16826040015160ff1614612e9557604080830151905161800560e51b815260ff9182166004820152908216602482015260440161172f565b611b7d845f01518560600151612ff3565b5f612eba8251805151602090910151101590565b612f68576006826040015160ff1611612f025760408201516502020183808360d11b9060ff1660078110612ef057612ef0613c31565b1a6013811115610a3957610a39613376565b816040015160ff16600703612f6857816060015160ff1660141480612f2e5750816060015160ff166015145b15612f3b57506002919050565b6019826060015160ff1610158015612f5b5750601b826060015160ff1611155b15612f6857506005919050565b919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60f08260ff811115612fd157612fd1613376565b1480610a39575060f18260ff811115612fec57612fec613376565b1492915050565b5f60188260ff16101561300a575060ff8116610a39565b8160ff166018036130285761301e836130ba565b60ff169050610a39565b8160ff166019036130475761303c8361311a565b61ffff169050610a39565b8160ff16601a036130685761305b83613185565b63ffffffff169050610a39565b8160ff16601b036130835761307c836131e3565b9050610a39565b8160ff16601f0361309c57506001600160401b03610a39565b604051636d785b1360e01b815260ff8316600482015260240161172f565b5f8160200151825f015151808211156130f0576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b835160208501805180830160010151955090819061310d82614854565b8152505050505050919050565b5f8160200151600261312c919061486c565b8251518082111561315a576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600281840181015196509091613178828461486c565b9052509395945050505050565b5f81602001516004613197919061486c565b825151808211156131c5576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600481840181015196509091613178828461486c565b5f816020015160086131f5919061486c565b82515180821115613223576040516363a056dd60e01b8152600481018390526024810182905260440161172f565b8351602085018051600881840181015196509091613178828461486c565b6040518060e001604052805f81526020015f5f0b81526020016060815260200161327b604080518082019091525f81526060602082015290565b8152604080516060810182525f80825260208281018290529282015291019081526020016132a76132d7565b81526040805160a0810182525f808252602082810182905292820181905260608201819052608082015291015290565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915290565b610b778061488083390190565b6001600160e01b0319811681146120c7575f5ffd5b5f6020828403121561333d575f5ffd5b8135610b6281613318565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b5f52602160045260245ffd5b6005811061339a5761339a613376565b9052565b6004811061339a5761339a613376565b6133b982825161339e565b6020818101516001600160a01b031690830152604090810151910152565b62ffffff815116825260208101511515602083015262ffffff604082015116604083015262ffffff606082015116606083015261ffff608082015116608083015261ffff60a08201511660a08301525050565b80515f0b82526001600160401b036020820151166020830152604081015160060b60408301526001600160401b036060820151166060830152608081015160808301525050565b8051825260208101515f0b60208301525f6040820151610240604085015261349d610240850182613348565b905060608301518482036060860152604082016134bb83835161338a565b602091820151604084840152805191829052909101906060600582901b8401810191908401905f5b8181101561351557605f198685030183526134ff848651613348565b60209586019590945092909201916001016134e3565b5050506080850151925061352c60808701846133ae565b60a0850151925061354060e08701846133d7565b60c08501519250610df86101a087018461342a565b602081525f610b626020830184613471565b5f5f83601f840112613577575f5ffd5b5081356001600160401b0381111561358d575f5ffd5b6020830191508360208285010111156135a4575f5ffd5b9250929050565b5f5f602083850312156135bc575f5ffd5b82356001600160401b038111156135d1575f5ffd5b6135dd85828601613567565b90969095509350505050565b6001600160401b03811681146120c7575f5ffd5b8035612f68816135e9565b5f5f60408385031215613619575f5ffd5b82359150602083013561362b816135e9565b809150509250929050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561368d57603f19878603018452613678858351613471565b9450602093840193919091019060010161365c565b50929695505050505050565b5f602082840312156136a9575f5ffd5b5035919050565b80151581146120c7575f5ffd5b5f5f5f604084860312156136cf575f5ffd5b83356001600160401b038111156136e4575f5ffd5b6136f086828701613567565b9094509250506020840135613704816136b0565b809150509250925092565b6001600160e01b031991909116815260200190565b805f0b81146120c7575f5ffd5b5f5f5f5f5f5f60808789031215613746575f5ffd5b86356001600160401b0381111561375b575f5ffd5b61376789828a01613567565b909750955050602087013561377b81613724565b935060408701356005811061378e575f5ffd5b925060608701356001600160401b038111156137a8575f5ffd5b8701601f810189136137b8575f5ffd5b80356001600160401b038111156137cd575f5ffd5b8960208260051b84010111156137e1575f5ffd5b60208201935080925050509295509295509295565b5f5f5f5f5f6060868803121561380a575f5ffd5b85356001600160401b0381111561381f575f5ffd5b61382b88828901613567565b909650945050602086013561383f81613724565b925060408601356001600160401b03811115613859575f5ffd5b61386588828901613567565b969995985093965092949392505050565b5f5f5f60408486031215613888575f5ffd5b83356001600160401b0381111561389d575f5ffd5b840160e081870312156138ae575f5ffd5b925060208401356001600160401b038111156138c8575f5ffd5b6138d486828701613567565b9497909650939450505050565b6001600160a01b03811681146120c7575f5ffd5b5f60208284031215613905575f5ffd5b8135610b62816138e1565b60c08101610a3982846133d7565b60a08101610a39828461342a565b5f60c0828403121561393c575f5ffd5b50919050565b5f60c08284031215613952575f5ffd5b610b62838361392c565b634e487b7160e01b5f52604160045260245ffd5b60c081018181106001600160401b038211171561398f5761398f61395c565b60405250565b604081018181106001600160401b038211171561398f5761398f61395c565b601f8201601f191681016001600160401b03811182821017156139d9576139d961395c565b6040525050565b5f6001600160401b038211156139f8576139f861395c565b50601f01601f191660200190565b5f60208284031215613a16575f5ffd5b81356001600160401b03811115613a2b575f5ffd5b8201601f81018413613a3b575f5ffd5b8035613a46816139e0565b604051613a5382826139b4565b828152866020848601011115613a67575f5ffd5b826020850160208301375f9281016020019290925250949350505050565b602081525f610b626020830184613348565b5f5f5f5f60608587031215613aaa575f5ffd5b84356001600160401b03811115613abf575f5ffd5b613acb87828801613567565b9095509350506020850135613adf81613724565b9396929550929360400135925050565b62ffffff811681146120c7575f5ffd5b5f5f60408385031215613b10575f5ffd5b8235613b1b81613318565b9150602083013561362b81613aef565b5f5f5f5f5f5f60a08789031215613b40575f5ffd5b86356001600160401b03811115613b55575f5ffd5b613b6189828a01613567565b9097509550506020870135613b7581613724565b9350604087013560048110613b88575f5ffd5b92506060870135613b98816138e1565b95989497509295919493608090920135925050565b5f5f5f60e08486031215613bbf575f5ffd5b83356001600160401b03811115613bd4575f5ffd5b613be086828701613567565b9094509250613bf49050856020860161392c565b90509250925092565b5f5f60e08385031215613c0e575f5ffd5b8235613c19816138e1565b9150613c28846020850161392c565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680613c5957607f821691505b60208210810361393c57634e487b7160e01b5f52602260045260245ffd5b8051612f68816135e9565b8051600681900b8114612f68575f5ffd5b5f60a0828403128015613ca4575f5ffd5b5060405160a081016001600160401b0381118282101715613cc757613cc761395c565b6040528251613cd581613724565b81526020830151613ce5816135e9565b6020820152613cf660408401613c82565b60408201526060830151613d09816135e9565b60608201526080928301519281019290925250919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b63ffffffff60e01b84168152604060208201525f610df8604083018486613d21565b5f60208284031215613d7b575f5ffd5b8151610b6281613318565b5f5f8335601e19843603018112613d9b575f5ffd5b83016020810192503590506001600160401b03811115613db9575f5ffd5b8036038213156135a4575f5ffd5b608081525f613dda60808301888a613d21565b865f0b6020840152613def604084018761338a565b8281036060840152838152602080820190600586901b830101865f5b87811015613e4957848303601f19018452613e26828a613d86565b613e31858284613d21565b60209687019690955093909301925050600101613e0b565b50909b9a5050505050505050505050565b5f60033d1115610cd25760045f5f3e505f5160e01c90565b5f60443d1015613e7f5790565b6040513d600319016004823e80513d60248201116001600160401b0382111715613ea857505090565b80820180516001600160401b03811115613ec3575050505090565b3d8401600319018282016020011115613edd575050505090565b613eec602082850101856139b4565b509392505050565b63ffffffff60e01b8816815260a060208201525f613f1660a08301888a613d21565b865f0b6040840152613f2b606084018761338a565b8281036080840152838152602080820190600586901b830101865f5b87811015613f8557848303601f19018452613f62828a613d86565b613f6d858284613d21565b60209687019690955093909301925050600101613f47565b50909c9b505050505050505050505050565b5f60208284031215613fa7575f5ffd5b8151610b62816138e1565b608081525f613fc560808301888a613d21565b8281036020840152613fd8818789613d21565b5f9590950b604084015250506001600160a01b0391909116606090910152949350505050565b5f5f6040838503121561400f575f5ffd5b825161401a81613318565b6020939093015192949293505050565b63ffffffff60e01b8816815260c060208201525f61404c60c08301888a613d21565b9050855f0b6040830152614063606083018661339e565b6001600160a01b0393909316608082015260a0015295945050505050565b61ffff811681146120c7575f5ffd5b8035612f6881614081565b5f602082840312156140ab575f5ffd5b8135610b6281614081565b6040808252843582820152602085013560608301525f908501356140d981614081565b61ffff16608083015260608501356140f081614081565b61ffff1660a08301526080850135614107816135e9565b6001600160401b031660c083015261412160a086016135fd565b6001600160401b031660e083015261413c60c0860186613d86565b60e061010085015261415361012085018284613d21565b9150508281036020840152610f8c818587613d21565b805160148110612f68575f5ffd5b805160ff81168114612f68575f5ffd5b5f60c08284031215614197575f5ffd5b6040516141a381613970565b80915082516001600160401b038111156141bb575f5ffd5b8301604081860312156141cc575f5ffd5b6040516141d881613995565b81516001600160401b038111156141ed575f5ffd5b8201601f810187136141fd575f5ffd5b8051614208816139e0565b60405161421582826139b4565b828152896020848601011115614229575f5ffd5b8260208501602083015e5f60209382018401528452509283015182840152508252614255908401614177565b602082015261426660408401614177565b604082015261427760608401614177565b606082015261428860808401613c77565b608082015261429960a08401613c77565b60a08201525092915050565b5f602082840312156142b5575f5ffd5b81516001600160401b038111156142ca575f5ffd5b820160c081850312156142db575f5ffd5b6040516142e781613970565b815161010081106142f6575f5ffd5b815261430460208301614169565b6020820152604082810151908201526060808301519082015261432960808301613c77565b608082015260a08201516001600160401b03811115614346575f5ffd5b61435286828501614187565b60a083015250949350505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190811115610a3957610a39614360565b6001600160401b038281168282160390811115610a3957610a39614360565b600782810b9082900b03677fffffffffffffff198112677fffffffffffffff82131715610a3957610a39614360565b5f8160060b667fffffffffffff1981036143fd576143fd614360565b5f0392915050565b5f8260060b8260060b028060060b915080821461442457614424614360565b5092915050565b5f6001600160401b0383168061444f57634e487b7160e01b5f52601260045260245ffd5b806001600160401b0384160491505092915050565b6001600160a01b0383168152815462ffffff808216602080850191909152601883901c60ff161515604085015282901c81166060840152603882901c166080830152605081901c61ffff1660a083015260e0820190606081901c61ffff1660c0840152613eec565b5f60c08284031280156144dd575f5ffd5b506040516144ea81613970565b82356144f581613aef565b81526020830135614505816136b0565b6020820152604083013561451881613aef565b6040820152606083013561452b81613aef565b6060820152608083013561453e81614081565b608082015261454f60a08401614090565b60a08201529392505050565b5f8135610a3981613aef565b5f8135610a3981614081565b813561457e81613aef565b62ffffff8116905081548162ffffff19821617835560208401356145a1816136b0565b63ffffffff199190911690911790151560181b63ff000000161781555f60408301356145cc81613aef565b825466ffffff00000000191660209190911b66ffffff00000000161782555061461c6145fa6060840161455b565b825462ffffff60381b191660389190911b69ffffff0000000000000016178255565b61464b61462b60808401614567565b82805461ffff60501b191660509290921b61ffff60501b16919091179055565b6128d961465a60a08401614567565b82805461ffff60601b191660609290921b61ffff60601b16919091179055565b608081525f61468d608083018789613d21565b6020830195909552505f9290920b60408301526001600160a01b031660609091015292915050565b5f60c08284031280156146c6575f5ffd5b506040516146d381613970565b82516146de816135e9565b815260208301516146ee816135e9565b60208201526146ff60408401613c82565b6040820152606083015161471281613724565b60608201526080830151614725816135e9565b608082015260a0928301519281019290925250919050565b5f81518060208401855e5f93019283525090919050565b5f61475f828561473d565b6101d160f51b8152610df8600282018561473d565b5f611b7d614782838661473d565b8461473d565b60a081525f61479a60a0830188613348565b9050855f0b60208301526147b1604083018661339e565b6001600160a01b03939093166060820152608001529392505050565b63ffffffff60e01b8716815260c060208201525f6147ee60c0830188613348565b9050855f0b6040830152614805606083018661339e565b6001600160a01b0393909316608082015260a00152949350505050565b63ffffffff60e01b8416815261010060208201525f614845610100830185613348565b9050611b7d60408301846133d7565b5f6001820161486557614865614360565b5060010190565b80820180821115610a3957610a3961436056fe610100604052348015610010575f5ffd5b50604051610b77380380610b7783398101604081905261002f916100c1565b6001600160e01b0319811660808190526040516371b50ecf60e11b815260048101919091526001600160a01b0383169063e36a1d9e90602401602060405180830381865afa158015610083573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a79190610110565b60a052506001600160a01b031660c081905260e052610127565b5f5f604083850312156100d2575f5ffd5b82516001600160a01b03811681146100e8575f5ffd5b60208401519092506001600160e01b031981168114610105575f5ffd5b809150509250929050565b5f60208284031215610120575f5ffd5b5051919050565b60805160a05160c05160e0516109d16101a65f395f818160ee01528181610322015281816103f4015281816104cb01528181610569015261065701525f61024e01525f61013201525f818161021a015281816102970152818161035101528181610423015281816104f801528181610598015261068601526109d15ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638205bf6a11610088578063b5ab58dc11610063578063b5ab58dc14610202578063e9159d6414610215578063f98d06f014610249578063feaf968c14610270575f5ffd5b80638205bf6a146101a857806395d89b41146101b05780639a6fc8f5146101b8575f5ffd5b806350d25bcd116100c357806350d25bcd1461017c57806354fd4d5014610184578063668a0f021461018b5780637284e41614610193575f5ffd5b80631014d375146100e9578063311893341461012d578063313ce56714610162575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101547f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610124565b61016a610278565b60405160ff9091168152602001610124565b61015461031e565b6003610154565b6101546103d8565b61019b6103e6565b604051610124919061072e565b6101546103f0565b61019b6104b1565b6101cb6101c6366004610763565b610561565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a001610124565b610154610210366004610793565b610640565b61023c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161012491906107aa565b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6101cb61064f565b60405163274d45db60e01b81525f908190339063274d45db906102bf907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b602060405180830381865afa1580156102da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906107d4565b90505f815f0b1261030f5780610318565b610318816107ed565b91505090565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161038c91906107aa565b60a060405180830381865afa1580156103a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610872565b6020015160070b92915050565b5f6103e16103f0565b905090565b60606103e16104b1565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161045e91906107aa565b60a060405180830381865afa158015610479573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049d9190610872565b6060015167ffffffffffffffff1692915050565b604051631c4f621160e31b81526060906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e27b108890610520907f0000000000000000000000000000000000000000000000000000000000000000906004016107aa565b5f60405180830381865afa15801561053a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103e19190810190610907565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105d391906107aa565b60a060405180830381865afa1580156105ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106129190610872565b6060810151602090910151979860079890980b9767ffffffffffffffff909116965086955088945092505050565b5f61064961031e565b92915050565b5f5f5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663974454097f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106c191906107aa565b60a060405180830381865afa1580156106dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190610872565b606081015160209091015167ffffffffffffffff9091169760079190910b9650879550859450849350915050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610773575f5ffd5b813569ffffffffffffffffffff8116811461078c575f5ffd5b9392505050565b5f602082840312156107a3575f5ffd5b5035919050565b6001600160e01b031991909116815260200190565b80515f81900b81146107cf575f5ffd5b919050565b5f602082840312156107e4575f5ffd5b61078c826107bf565b5f81810b6080810161080d57634e487b7160e01b5f52601160045260245ffd5b5f0392915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561085257610852610815565b604052919050565b67ffffffffffffffff8116811461086f575f5ffd5b50565b5f60a0828403128015610883575f5ffd5b5060405160a0810167ffffffffffffffff811182821017156108a7576108a7610815565b6040526108b3836107bf565b815260208301516108c38161085a565b60208201526040830151600681900b81146108dc575f5ffd5b604082015260608301516108ef8161085a565b60608201526080928301519281019290925250919050565b5f60208284031215610917575f5ffd5b815167ffffffffffffffff81111561092d575f5ffd5b8201601f8101841361093d575f5ffd5b805167ffffffffffffffff81111561095757610957610815565b61096a601f8201601f1916602001610829565b81815285602083850101111561097e575f5ffd5b8160208401602083015e5f9181016020019190915294935050505056fea2646970667358221220ed110a5686ebb699e7a8419c7abfa8c2ab9b37934765c17bd5997c5da024fdf864736f6c634300081e0033c5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53904c5354469a5d32189a18f5e79f9508d828fa089087c317bc89792b1c8dba53900a2646970667358221220ac33583edc87c48d0ca8c2047a358b039b864931ab08275da36fc2149528dea764736f6c634300081e0033",
  "immutableReferences": {
    "4426": [
      {
        "length": 32,
        "start": 669
      },
      {
        "length": 32,
        "start": 4032
      },
      {
        "length": 32,
        "start": 4721
      },
      {
        "length": 32,
        "start": 7179
      }
    ],
    "45353": [
      {
        "length": 32,
        "start": 1001
      },
      {
        "length": 32,
        "start": 5977
      },
      {
        "length": 32,
        "start": 6792
      },
      {
        "length": 32,
        "start": 10620
      },
      {
        "length": 32,
        "start": 10793
      }
    ]
  },
  "generatedSources": [
    {
      "ast": {
        "nativeSrc": "0:1695:136",
        "nodeType": "YulBlock",
        "src": "0:1695:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "74:117:136",
              "nodeType": "YulBlock",
              "src": "74:117:136",
              "statements": [
                {
                  "nativeSrc": "84:22:136",
                  "nodeType": "YulAssignment",
                  "src": "84:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "99:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "99:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "93:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "93:5:136"
                    },
                    "nativeSrc": "93:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "93:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "84:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "84:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "169:16:136",
                    "nodeType": "YulBlock",
                    "src": "169:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "178:1:136",
                              "nodeType": "YulLiteral",
                              "src": "178:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "181:1:136",
                              "nodeType": "YulLiteral",
                              "src": "181:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "171:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "171:6:136"
                          },
                          "nativeSrc": "171:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "171:12:136"
                        },
                        "nativeSrc": "171:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "171:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "128:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "128:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "139:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "139:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "154:3:136",
                                        "nodeType": "YulLiteral",
                                        "src": "154:3:136",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "159:1:136",
                                        "nodeType": "YulLiteral",
                                        "src": "159:1:136",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "150:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "150:3:136"
                                    },
                                    "nativeSrc": "150:11:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "150:11:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "163:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "163:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "146:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "146:3:136"
                                },
                                "nativeSrc": "146:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "146:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "135:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "135:3:136"
                            },
                            "nativeSrc": "135:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "135:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "125:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "125:2:136"
                        },
                        "nativeSrc": "125:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "125:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "118:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "118:6:136"
                    },
                    "nativeSrc": "118:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "118:50:136"
                  },
                  "nativeSrc": "115:70:136",
                  "nodeType": "YulIf",
                  "src": "115:70:136"
                }
              ]
            },
            "name": "abi_decode_address_fromMemory",
            "nativeSrc": "14:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "53:6:136",
                "nodeType": "YulTypedName",
                "src": "53:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "64:5:136",
                "nodeType": "YulTypedName",
                "src": "64:5:136",
                "type": ""
              }
            ],
            "src": "14:177:136"
          },
          {
            "body": {
              "nativeSrc": "294:195:136",
              "nodeType": "YulBlock",
              "src": "294:195:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "340:16:136",
                    "nodeType": "YulBlock",
                    "src": "340:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "349:1:136",
                              "nodeType": "YulLiteral",
                              "src": "349:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "352:1:136",
                              "nodeType": "YulLiteral",
                              "src": "352:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "342:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "342:6:136"
                          },
                          "nativeSrc": "342:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "342:12:136"
                        },
                        "nativeSrc": "342:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "342:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "315:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "315:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "324:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "324:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "311:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "311:3:136"
                        },
                        "nativeSrc": "311:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "311:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "336:2:136",
                        "nodeType": "YulLiteral",
                        "src": "336:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "307:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "307:3:136"
                    },
                    "nativeSrc": "307:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "307:32:136"
                  },
                  "nativeSrc": "304:52:136",
                  "nodeType": "YulIf",
                  "src": "304:52:136"
                },
                {
                  "nativeSrc": "365:50:136",
                  "nodeType": "YulAssignment",
                  "src": "365:50:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "405:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "405:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address_fromMemory",
                      "nativeSrc": "375:29:136",
                      "nodeType": "YulIdentifier",
                      "src": "375:29:136"
                    },
                    "nativeSrc": "375:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "375:40:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "365:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "365:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "424:59:136",
                  "nodeType": "YulAssignment",
                  "src": "424:59:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "468:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "468:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "479:2:136",
                            "nodeType": "YulLiteral",
                            "src": "479:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "464:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "464:3:136"
                        },
                        "nativeSrc": "464:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "464:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address_fromMemory",
                      "nativeSrc": "434:29:136",
                      "nodeType": "YulIdentifier",
                      "src": "434:29:136"
                    },
                    "nativeSrc": "434:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "434:49:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "424:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "424:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address_fromMemory",
            "nativeSrc": "196:293:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "252:9:136",
                "nodeType": "YulTypedName",
                "src": "252:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "263:7:136",
                "nodeType": "YulTypedName",
                "src": "263:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "275:6:136",
                "nodeType": "YulTypedName",
                "src": "275:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "283:6:136",
                "nodeType": "YulTypedName",
                "src": "283:6:136",
                "type": ""
              }
            ],
            "src": "196:293:136"
          },
          {
            "body": {
              "nativeSrc": "595:102:136",
              "nodeType": "YulBlock",
              "src": "595:102:136",
              "statements": [
                {
                  "nativeSrc": "605:26:136",
                  "nodeType": "YulAssignment",
                  "src": "605:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "617:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "617:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "628:2:136",
                        "nodeType": "YulLiteral",
                        "src": "628:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "613:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "613:3:136"
                    },
                    "nativeSrc": "613:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "613:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "605:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "605:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "647:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "647:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "662:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "662:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "678:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "678:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "683:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "683:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "674:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "674:3:136"
                                },
                                "nativeSrc": "674:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "674:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "687:1:136",
                                "nodeType": "YulLiteral",
                                "src": "687:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "670:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "670:3:136"
                            },
                            "nativeSrc": "670:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "670:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "658:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "658:3:136"
                        },
                        "nativeSrc": "658:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "658:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "640:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "640:6:136"
                    },
                    "nativeSrc": "640:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "640:51:136"
                  },
                  "nativeSrc": "640:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "640:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "494:203:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "564:9:136",
                "nodeType": "YulTypedName",
                "src": "564:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "575:6:136",
                "nodeType": "YulTypedName",
                "src": "575:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "586:4:136",
                "nodeType": "YulTypedName",
                "src": "586:4:136",
                "type": ""
              }
            ],
            "src": "494:203:136"
          },
          {
            "body": {
              "nativeSrc": "876:171:136",
              "nodeType": "YulBlock",
              "src": "876:171:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "893:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "893:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "904:2:136",
                        "nodeType": "YulLiteral",
                        "src": "904:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "886:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "886:6:136"
                    },
                    "nativeSrc": "886:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "886:21:136"
                  },
                  "nativeSrc": "886:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "886:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "927:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "927:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "938:2:136",
                            "nodeType": "YulLiteral",
                            "src": "938:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "923:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "923:3:136"
                        },
                        "nativeSrc": "923:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "923:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "943:2:136",
                        "nodeType": "YulLiteral",
                        "src": "943:2:136",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "916:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "916:6:136"
                    },
                    "nativeSrc": "916:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "916:30:136"
                  },
                  "nativeSrc": "916:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "916:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "966:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "966:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "977:2:136",
                            "nodeType": "YulLiteral",
                            "src": "977:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "962:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "962:3:136"
                        },
                        "nativeSrc": "962:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "962:18:136"
                      },
                      {
                        "hexValue": "696e6578697374656e74207769742f6f7261636c65",
                        "kind": "string",
                        "nativeSrc": "982:23:136",
                        "nodeType": "YulLiteral",
                        "src": "982:23:136",
                        "type": "",
                        "value": "inexistent wit/oracle"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "955:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "955:6:136"
                    },
                    "nativeSrc": "955:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "955:51:136"
                  },
                  "nativeSrc": "955:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "955:51:136"
                },
                {
                  "nativeSrc": "1015:26:136",
                  "nodeType": "YulAssignment",
                  "src": "1015:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1027:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1027:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1038:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1038:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1023:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1023:3:136"
                    },
                    "nativeSrc": "1023:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1023:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1015:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1015:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_607e341bafd0779b8dd4ce1c0914683083ea6c77d6fb352adad667fac5e04d98__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "702:345:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "853:9:136",
                "nodeType": "YulTypedName",
                "src": "853:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "867:4:136",
                "nodeType": "YulTypedName",
                "src": "867:4:136",
                "type": ""
              }
            ],
            "src": "702:345:136"
          },
          {
            "body": {
              "nativeSrc": "1132:210:136",
              "nodeType": "YulBlock",
              "src": "1132:210:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1178:16:136",
                    "nodeType": "YulBlock",
                    "src": "1178:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1187:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1187:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1190:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1190:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1180:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1180:6:136"
                          },
                          "nativeSrc": "1180:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1180:12:136"
                        },
                        "nativeSrc": "1180:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1180:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "1153:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "1153:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "1162:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1162:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "1149:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1149:3:136"
                        },
                        "nativeSrc": "1149:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1149:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1174:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1174:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "1145:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1145:3:136"
                    },
                    "nativeSrc": "1145:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1145:32:136"
                  },
                  "nativeSrc": "1142:52:136",
                  "nodeType": "YulIf",
                  "src": "1142:52:136"
                },
                {
                  "nativeSrc": "1203:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "1203:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1222:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1222:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "1216:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "1216:5:136"
                    },
                    "nativeSrc": "1216:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1216:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "1207:5:136",
                      "nodeType": "YulTypedName",
                      "src": "1207:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "1296:16:136",
                    "nodeType": "YulBlock",
                    "src": "1296:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "1305:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1305:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "1308:1:136",
                              "nodeType": "YulLiteral",
                              "src": "1308:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "1298:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "1298:6:136"
                          },
                          "nativeSrc": "1298:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1298:12:136"
                        },
                        "nativeSrc": "1298:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1298:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1254:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1254:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "1265:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "1265:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1276:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1276:3:136",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1281:10:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1281:10:136",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "1272:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1272:3:136"
                                },
                                "nativeSrc": "1272:20:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1272:20:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "1261:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1261:3:136"
                            },
                            "nativeSrc": "1261:32:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1261:32:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "1251:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "1251:2:136"
                        },
                        "nativeSrc": "1251:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1251:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "1244:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1244:6:136"
                    },
                    "nativeSrc": "1244:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1244:51:136"
                  },
                  "nativeSrc": "1241:71:136",
                  "nodeType": "YulIf",
                  "src": "1241:71:136"
                },
                {
                  "nativeSrc": "1321:15:136",
                  "nodeType": "YulAssignment",
                  "src": "1321:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "1331:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "1331:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "1321:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1321:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nativeSrc": "1052:290:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1098:9:136",
                "nodeType": "YulTypedName",
                "src": "1098:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "1109:7:136",
                "nodeType": "YulTypedName",
                "src": "1109:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "1121:6:136",
                "nodeType": "YulTypedName",
                "src": "1121:6:136",
                "type": ""
              }
            ],
            "src": "1052:290:136"
          },
          {
            "body": {
              "nativeSrc": "1521:172:136",
              "nodeType": "YulBlock",
              "src": "1521:172:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1538:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1538:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1549:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1549:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1531:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1531:6:136"
                    },
                    "nativeSrc": "1531:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1531:21:136"
                  },
                  "nativeSrc": "1531:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1531:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1572:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1572:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1583:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1583:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1568:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1568:3:136"
                        },
                        "nativeSrc": "1568:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1568:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1588:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1588:2:136",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1561:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1561:6:136"
                    },
                    "nativeSrc": "1561:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1561:30:136"
                  },
                  "nativeSrc": "1561:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1561:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "1611:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "1611:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1622:2:136",
                            "nodeType": "YulLiteral",
                            "src": "1622:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1607:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1607:3:136"
                        },
                        "nativeSrc": "1607:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1607:18:136"
                      },
                      {
                        "hexValue": "756e636f6d706c69616e74207769742f6f7261636c65",
                        "kind": "string",
                        "nativeSrc": "1627:24:136",
                        "nodeType": "YulLiteral",
                        "src": "1627:24:136",
                        "type": "",
                        "value": "uncompliant wit/oracle"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1600:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1600:6:136"
                    },
                    "nativeSrc": "1600:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1600:52:136"
                  },
                  "nativeSrc": "1600:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1600:52:136"
                },
                {
                  "nativeSrc": "1661:26:136",
                  "nodeType": "YulAssignment",
                  "src": "1661:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "1673:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "1673:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "1684:2:136",
                        "nodeType": "YulLiteral",
                        "src": "1684:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "1669:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "1669:3:136"
                    },
                    "nativeSrc": "1669:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1669:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "1661:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "1661:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_cbcd48d575dfbbe3e40a18ff4aaf929b6cf25b8fe75b3b262dfeb3239030fde3__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "1347:346:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "1498:9:136",
                "nodeType": "YulTypedName",
                "src": "1498:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "1512:4:136",
                "nodeType": "YulTypedName",
                "src": "1512:4:136",
                "type": ""
              }
            ],
            "src": "1347:346:136"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address_fromMemory(headStart)\n        value1 := abi_decode_address_fromMemory(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_607e341bafd0779b8dd4ce1c0914683083ea6c77d6fb352adad667fac5e04d98__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"inexistent wit/oracle\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_cbcd48d575dfbbe3e40a18ff4aaf929b6cf25b8fe75b3b262dfeb3239030fde3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"uncompliant wit/oracle\")\n        tail := add(headStart, 96)\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nativeSrc": "0:50444:136",
        "nodeType": "YulBlock",
        "src": "0:50444:136",
        "statements": [
          {
            "nativeSrc": "6:3:136",
            "nodeType": "YulBlock",
            "src": "6:3:136",
            "statements": []
          },
          {
            "body": {
              "nativeSrc": "76:87:136",
              "nodeType": "YulBlock",
              "src": "76:87:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "141:16:136",
                    "nodeType": "YulBlock",
                    "src": "141:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "150:1:136",
                              "nodeType": "YulLiteral",
                              "src": "150:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "153:1:136",
                              "nodeType": "YulLiteral",
                              "src": "153:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "143:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "143:6:136"
                          },
                          "nativeSrc": "143:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "143:12:136"
                        },
                        "nativeSrc": "143:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "143:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "99:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "99:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "110:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "110:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "121:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "121:3:136",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "126:10:136",
                                    "nodeType": "YulLiteral",
                                    "src": "126:10:136",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "117:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "117:3:136"
                                },
                                "nativeSrc": "117:20:136",
                                "nodeType": "YulFunctionCall",
                                "src": "117:20:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "106:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "106:3:136"
                            },
                            "nativeSrc": "106:32:136",
                            "nodeType": "YulFunctionCall",
                            "src": "106:32:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "96:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "96:2:136"
                        },
                        "nativeSrc": "96:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "96:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "89:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "89:6:136"
                    },
                    "nativeSrc": "89:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "89:51:136"
                  },
                  "nativeSrc": "86:71:136",
                  "nodeType": "YulIf",
                  "src": "86:71:136"
                }
              ]
            },
            "name": "validator_revert_userDefinedValueType_ID4",
            "nativeSrc": "14:149:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "65:5:136",
                "nodeType": "YulTypedName",
                "src": "65:5:136",
                "type": ""
              }
            ],
            "src": "14:149:136"
          },
          {
            "body": {
              "nativeSrc": "263:194:136",
              "nodeType": "YulBlock",
              "src": "263:194:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "309:16:136",
                    "nodeType": "YulBlock",
                    "src": "309:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "318:1:136",
                              "nodeType": "YulLiteral",
                              "src": "318:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "321:1:136",
                              "nodeType": "YulLiteral",
                              "src": "321:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "311:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "311:6:136"
                          },
                          "nativeSrc": "311:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "311:12:136"
                        },
                        "nativeSrc": "311:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "311:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "284:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "284:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "293:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "293:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "280:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "280:3:136"
                        },
                        "nativeSrc": "280:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "280:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "305:2:136",
                        "nodeType": "YulLiteral",
                        "src": "305:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "276:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "276:3:136"
                    },
                    "nativeSrc": "276:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "276:32:136"
                  },
                  "nativeSrc": "273:52:136",
                  "nodeType": "YulIf",
                  "src": "273:52:136"
                },
                {
                  "nativeSrc": "334:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "334:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "360:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "360:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "347:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "347:12:136"
                    },
                    "nativeSrc": "347:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "347:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "338:5:136",
                      "nodeType": "YulTypedName",
                      "src": "338:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "421:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "421:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_userDefinedValueType_ID4",
                      "nativeSrc": "379:41:136",
                      "nodeType": "YulIdentifier",
                      "src": "379:41:136"
                    },
                    "nativeSrc": "379:48:136",
                    "nodeType": "YulFunctionCall",
                    "src": "379:48:136"
                  },
                  "nativeSrc": "379:48:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "379:48:136"
                },
                {
                  "nativeSrc": "436:15:136",
                  "nodeType": "YulAssignment",
                  "src": "436:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "446:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "446:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "436:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "436:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_userDefinedValueType$_ID4_$28155",
            "nativeSrc": "168:289:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "229:9:136",
                "nodeType": "YulTypedName",
                "src": "229:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "240:7:136",
                "nodeType": "YulTypedName",
                "src": "240:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "252:6:136",
                "nodeType": "YulTypedName",
                "src": "252:6:136",
                "type": ""
              }
            ],
            "src": "168:289:136"
          },
          {
            "body": {
              "nativeSrc": "523:239:136",
              "nodeType": "YulBlock",
              "src": "523:239:136",
              "statements": [
                {
                  "nativeSrc": "533:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "533:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "553:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "553:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "547:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "547:5:136"
                    },
                    "nativeSrc": "547:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "547:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "537:6:136",
                      "nodeType": "YulTypedName",
                      "src": "537:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "575:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "575:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "580:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "580:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "568:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "568:6:136"
                    },
                    "nativeSrc": "568:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "568:19:136"
                  },
                  "nativeSrc": "568:19:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "568:19:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "606:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "606:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "611:4:136",
                            "nodeType": "YulLiteral",
                            "src": "611:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "602:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "602:3:136"
                        },
                        "nativeSrc": "602:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "602:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "622:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "622:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "629:4:136",
                            "nodeType": "YulLiteral",
                            "src": "629:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "618:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "618:3:136"
                        },
                        "nativeSrc": "618:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "618:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "636:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "636:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "596:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "596:5:136"
                    },
                    "nativeSrc": "596:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "596:47:136"
                  },
                  "nativeSrc": "596:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "596:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nativeSrc": "667:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "667:3:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "672:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "672:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "663:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "663:3:136"
                            },
                            "nativeSrc": "663:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "663:16:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "681:4:136",
                            "nodeType": "YulLiteral",
                            "src": "681:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "659:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "659:3:136"
                        },
                        "nativeSrc": "659:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "659:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "688:1:136",
                        "nodeType": "YulLiteral",
                        "src": "688:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "652:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "652:6:136"
                    },
                    "nativeSrc": "652:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "652:38:136"
                  },
                  "nativeSrc": "652:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "652:38:136"
                },
                {
                  "nativeSrc": "699:57:136",
                  "nodeType": "YulAssignment",
                  "src": "699:57:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "714:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "714:3:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "727:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "727:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "735:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "735:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "723:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "723:3:136"
                                },
                                "nativeSrc": "723:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "723:15:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "744:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "744:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "740:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "740:3:136"
                                },
                                "nativeSrc": "740:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "740:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "719:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "719:3:136"
                            },
                            "nativeSrc": "719:29:136",
                            "nodeType": "YulFunctionCall",
                            "src": "719:29:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "710:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "710:3:136"
                        },
                        "nativeSrc": "710:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "710:39:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "751:4:136",
                        "nodeType": "YulLiteral",
                        "src": "751:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "706:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "706:3:136"
                    },
                    "nativeSrc": "706:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "706:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "699:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "699:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_memory_ptr",
            "nativeSrc": "462:300:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "500:5:136",
                "nodeType": "YulTypedName",
                "src": "500:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "507:3:136",
                "nodeType": "YulTypedName",
                "src": "507:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "515:3:136",
                "nodeType": "YulTypedName",
                "src": "515:3:136",
                "type": ""
              }
            ],
            "src": "462:300:136"
          },
          {
            "body": {
              "nativeSrc": "799:95:136",
              "nodeType": "YulBlock",
              "src": "799:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "816:1:136",
                        "nodeType": "YulLiteral",
                        "src": "816:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "823:3:136",
                            "nodeType": "YulLiteral",
                            "src": "823:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "828:10:136",
                            "nodeType": "YulLiteral",
                            "src": "828:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "819:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "819:3:136"
                        },
                        "nativeSrc": "819:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "819:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "809:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "809:6:136"
                    },
                    "nativeSrc": "809:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "809:31:136"
                  },
                  "nativeSrc": "809:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "809:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "856:1:136",
                        "nodeType": "YulLiteral",
                        "src": "856:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "859:4:136",
                        "nodeType": "YulLiteral",
                        "src": "859:4:136",
                        "type": "",
                        "value": "0x21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "849:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "849:6:136"
                    },
                    "nativeSrc": "849:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "849:15:136"
                  },
                  "nativeSrc": "849:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "849:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "880:1:136",
                        "nodeType": "YulLiteral",
                        "src": "880:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "883:4:136",
                        "nodeType": "YulLiteral",
                        "src": "883:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "873:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "873:6:136"
                    },
                    "nativeSrc": "873:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "873:15:136"
                  },
                  "nativeSrc": "873:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "873:15:136"
                }
              ]
            },
            "name": "panic_error_0x21",
            "nativeSrc": "767:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "767:127:136"
          },
          {
            "body": {
              "nativeSrc": "948:89:136",
              "nodeType": "YulBlock",
              "src": "948:89:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "982:22:136",
                    "nodeType": "YulBlock",
                    "src": "982:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "984:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "984:16:136"
                          },
                          "nativeSrc": "984:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "984:18:136"
                        },
                        "nativeSrc": "984:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "984:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "971:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "971:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "978:1:136",
                            "nodeType": "YulLiteral",
                            "src": "978:1:136",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "968:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "968:2:136"
                        },
                        "nativeSrc": "968:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "968:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "961:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "961:6:136"
                    },
                    "nativeSrc": "961:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "961:20:136"
                  },
                  "nativeSrc": "958:46:136",
                  "nodeType": "YulIf",
                  "src": "958:46:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1020:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1020:3:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "1025:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "1025:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1013:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1013:6:136"
                    },
                    "nativeSrc": "1013:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1013:18:136"
                  },
                  "nativeSrc": "1013:18:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1013:18:136"
                }
              ]
            },
            "name": "abi_encode_enum_Mappers",
            "nativeSrc": "899:138:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "932:5:136",
                "nodeType": "YulTypedName",
                "src": "932:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "939:3:136",
                "nodeType": "YulTypedName",
                "src": "939:3:136",
                "type": ""
              }
            ],
            "src": "899:138:136"
          },
          {
            "body": {
              "nativeSrc": "1091:89:136",
              "nodeType": "YulBlock",
              "src": "1091:89:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "1125:22:136",
                    "nodeType": "YulBlock",
                    "src": "1125:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x21",
                            "nativeSrc": "1127:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "1127:16:136"
                          },
                          "nativeSrc": "1127:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "1127:18:136"
                        },
                        "nativeSrc": "1127:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "1127:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1114:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1114:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1121:1:136",
                            "nodeType": "YulLiteral",
                            "src": "1121:1:136",
                            "type": "",
                            "value": "4"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "1111:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "1111:2:136"
                        },
                        "nativeSrc": "1111:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1111:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "1104:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1104:6:136"
                    },
                    "nativeSrc": "1104:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1104:20:136"
                  },
                  "nativeSrc": "1101:46:136",
                  "nodeType": "YulIf",
                  "src": "1101:46:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1163:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1163:3:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "1168:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "1168:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1156:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1156:6:136"
                    },
                    "nativeSrc": "1156:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1156:18:136"
                  },
                  "nativeSrc": "1156:18:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1156:18:136"
                }
              ]
            },
            "name": "abi_encode_enum_Oracles",
            "nativeSrc": "1042:138:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1075:5:136",
                "nodeType": "YulTypedName",
                "src": "1075:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "1082:3:136",
                "nodeType": "YulTypedName",
                "src": "1082:3:136",
                "type": ""
              }
            ],
            "src": "1042:138:136"
          },
          {
            "body": {
              "nativeSrc": "1235:196:136",
              "nodeType": "YulBlock",
              "src": "1235:196:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1275:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1275:5:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "1269:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "1269:5:136"
                        },
                        "nativeSrc": "1269:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1269:12:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "1283:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1283:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Oracles",
                      "nativeSrc": "1245:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "1245:23:136"
                    },
                    "nativeSrc": "1245:42:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1245:42:136"
                  },
                  "nativeSrc": "1245:42:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1245:42:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1307:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1307:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1312:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1312:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1303:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1303:3:136"
                        },
                        "nativeSrc": "1303:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1303:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "1333:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1333:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1340:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1340:4:136",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1329:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1329:3:136"
                                },
                                "nativeSrc": "1329:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1329:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1323:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1323:5:136"
                            },
                            "nativeSrc": "1323:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1323:23:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1356:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1356:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1361:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1361:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "1352:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1352:3:136"
                                },
                                "nativeSrc": "1352:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1352:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "1365:1:136",
                                "nodeType": "YulLiteral",
                                "src": "1365:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "1348:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1348:3:136"
                            },
                            "nativeSrc": "1348:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1348:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1319:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1319:3:136"
                        },
                        "nativeSrc": "1319:49:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1319:49:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1296:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1296:6:136"
                    },
                    "nativeSrc": "1296:73:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1296:73:136"
                  },
                  "nativeSrc": "1296:73:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1296:73:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1389:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1389:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1394:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1394:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1385:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1385:3:136"
                        },
                        "nativeSrc": "1385:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1385:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "1411:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "1411:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "1418:4:136",
                                "nodeType": "YulLiteral",
                                "src": "1418:4:136",
                                "type": "",
                                "value": "0x40"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "1407:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "1407:3:136"
                            },
                            "nativeSrc": "1407:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1407:16:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "1401:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "1401:5:136"
                        },
                        "nativeSrc": "1401:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1401:23:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1378:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1378:6:136"
                    },
                    "nativeSrc": "1378:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1378:47:136"
                  },
                  "nativeSrc": "1378:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1378:47:136"
                }
              ]
            },
            "name": "abi_encode_struct_Oracle",
            "nativeSrc": "1185:246:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1219:5:136",
                "nodeType": "YulTypedName",
                "src": "1219:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "1226:3:136",
                "nodeType": "YulTypedName",
                "src": "1226:3:136",
                "type": ""
              }
            ],
            "src": "1185:246:136"
          },
          {
            "body": {
              "nativeSrc": "1479:47:136",
              "nodeType": "YulBlock",
              "src": "1479:47:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1496:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1496:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "1505:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "1505:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1512:6:136",
                            "nodeType": "YulLiteral",
                            "src": "1512:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1501:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1501:3:136"
                        },
                        "nativeSrc": "1501:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1501:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1489:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1489:6:136"
                    },
                    "nativeSrc": "1489:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1489:31:136"
                  },
                  "nativeSrc": "1489:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1489:31:136"
                }
              ]
            },
            "name": "abi_encode_uint16",
            "nativeSrc": "1436:90:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1463:5:136",
                "nodeType": "YulTypedName",
                "src": "1463:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "1470:3:136",
                "nodeType": "YulTypedName",
                "src": "1470:3:136",
                "type": ""
              }
            ],
            "src": "1436:90:136"
          },
          {
            "body": {
              "nativeSrc": "1591:408:136",
              "nodeType": "YulBlock",
              "src": "1591:408:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "1608:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "1608:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "1623:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "1623:5:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1617:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1617:5:136"
                            },
                            "nativeSrc": "1617:12:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1617:12:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1631:8:136",
                            "nodeType": "YulLiteral",
                            "src": "1631:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1613:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1613:3:136"
                        },
                        "nativeSrc": "1613:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1613:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1601:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1601:6:136"
                    },
                    "nativeSrc": "1601:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1601:40:136"
                  },
                  "nativeSrc": "1601:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1601:40:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1661:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1661:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1666:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1666:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1657:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1657:3:136"
                        },
                        "nativeSrc": "1657:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1657:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "value",
                                        "nativeSrc": "1697:5:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "1697:5:136"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "1704:4:136",
                                        "nodeType": "YulLiteral",
                                        "src": "1704:4:136",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "1693:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "1693:3:136"
                                    },
                                    "nativeSrc": "1693:16:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "1693:16:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "mload",
                                  "nativeSrc": "1687:5:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1687:5:136"
                                },
                                "nativeSrc": "1687:23:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1687:23:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "1680:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "1680:6:136"
                            },
                            "nativeSrc": "1680:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1680:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "1673:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "1673:6:136"
                        },
                        "nativeSrc": "1673:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1673:39:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1650:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1650:6:136"
                    },
                    "nativeSrc": "1650:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1650:63:136"
                  },
                  "nativeSrc": "1650:63:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1650:63:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1733:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1733:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1738:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1738:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1729:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1729:3:136"
                        },
                        "nativeSrc": "1729:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1729:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "1759:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1759:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1766:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1766:4:136",
                                    "type": "",
                                    "value": "0x40"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1755:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1755:3:136"
                                },
                                "nativeSrc": "1755:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1755:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1749:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1749:5:136"
                            },
                            "nativeSrc": "1749:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1749:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1774:8:136",
                            "nodeType": "YulLiteral",
                            "src": "1774:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1745:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1745:3:136"
                        },
                        "nativeSrc": "1745:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1745:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1722:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1722:6:136"
                    },
                    "nativeSrc": "1722:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1722:62:136"
                  },
                  "nativeSrc": "1722:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1722:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1804:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1804:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1809:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1809:4:136",
                            "type": "",
                            "value": "0x60"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1800:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1800:3:136"
                        },
                        "nativeSrc": "1800:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1800:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "1830:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1830:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1837:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1837:4:136",
                                    "type": "",
                                    "value": "0x60"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1826:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1826:3:136"
                                },
                                "nativeSrc": "1826:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1826:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1820:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1820:5:136"
                            },
                            "nativeSrc": "1820:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1820:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1845:8:136",
                            "nodeType": "YulLiteral",
                            "src": "1845:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1816:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1816:3:136"
                        },
                        "nativeSrc": "1816:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1816:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1793:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1793:6:136"
                    },
                    "nativeSrc": "1793:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1793:62:136"
                  },
                  "nativeSrc": "1793:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1793:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1875:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1875:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1880:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1880:4:136",
                            "type": "",
                            "value": "0x80"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1871:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1871:3:136"
                        },
                        "nativeSrc": "1871:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1871:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "1901:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1901:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1908:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1908:4:136",
                                    "type": "",
                                    "value": "0x80"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1897:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1897:3:136"
                                },
                                "nativeSrc": "1897:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1897:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1891:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1891:5:136"
                            },
                            "nativeSrc": "1891:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1891:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1916:6:136",
                            "nodeType": "YulLiteral",
                            "src": "1916:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1887:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1887:3:136"
                        },
                        "nativeSrc": "1887:36:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1887:36:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1864:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1864:6:136"
                    },
                    "nativeSrc": "1864:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1864:60:136"
                  },
                  "nativeSrc": "1864:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1864:60:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "1944:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "1944:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1949:4:136",
                            "nodeType": "YulLiteral",
                            "src": "1949:4:136",
                            "type": "",
                            "value": "0xa0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "1940:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1940:3:136"
                        },
                        "nativeSrc": "1940:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1940:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "1970:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "1970:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "1977:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "1977:4:136",
                                    "type": "",
                                    "value": "0xa0"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "1966:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "1966:3:136"
                                },
                                "nativeSrc": "1966:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "1966:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "1960:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "1960:5:136"
                            },
                            "nativeSrc": "1960:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "1960:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "1985:6:136",
                            "nodeType": "YulLiteral",
                            "src": "1985:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "1956:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "1956:3:136"
                        },
                        "nativeSrc": "1956:36:136",
                        "nodeType": "YulFunctionCall",
                        "src": "1956:36:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "1933:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "1933:6:136"
                    },
                    "nativeSrc": "1933:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "1933:60:136"
                  },
                  "nativeSrc": "1933:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "1933:60:136"
                }
              ]
            },
            "name": "abi_encode_struct_UpdateConditions",
            "nativeSrc": "1531:468:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "1575:5:136",
                "nodeType": "YulTypedName",
                "src": "1575:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "1582:3:136",
                "nodeType": "YulTypedName",
                "src": "1582:3:136",
                "type": ""
              }
            ],
            "src": "1531:468:136"
          },
          {
            "body": {
              "nativeSrc": "2071:59:136",
              "nodeType": "YulBlock",
              "src": "2071:59:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2088:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "2088:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2097:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2097:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2104:18:136",
                            "nodeType": "YulLiteral",
                            "src": "2104:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2093:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2093:3:136"
                        },
                        "nativeSrc": "2093:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2093:30:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2081:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2081:6:136"
                    },
                    "nativeSrc": "2081:43:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2081:43:136"
                  },
                  "nativeSrc": "2081:43:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2081:43:136"
                }
              ]
            },
            "name": "abi_encode_userDefinedValueType_Timestamp",
            "nativeSrc": "2004:126:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "2055:5:136",
                "nodeType": "YulTypedName",
                "src": "2055:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "2062:3:136",
                "nodeType": "YulTypedName",
                "src": "2062:3:136",
                "type": ""
              }
            ],
            "src": "2004:126:136"
          },
          {
            "body": {
              "nativeSrc": "2184:345:136",
              "nodeType": "YulBlock",
              "src": "2184:345:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2201:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "2201:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "2217:1:136",
                            "nodeType": "YulLiteral",
                            "src": "2217:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "2226:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "2226:5:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "2220:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "2220:5:136"
                            },
                            "nativeSrc": "2220:12:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2220:12:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "2206:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "2206:10:136"
                        },
                        "nativeSrc": "2206:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2206:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2194:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2194:6:136"
                    },
                    "nativeSrc": "2194:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2194:40:136"
                  },
                  "nativeSrc": "2194:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2194:40:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2254:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2254:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2259:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2259:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2250:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2250:3:136"
                        },
                        "nativeSrc": "2250:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2250:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "2280:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "2280:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2287:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "2287:4:136",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "2276:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "2276:3:136"
                                },
                                "nativeSrc": "2276:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "2276:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "2270:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "2270:5:136"
                            },
                            "nativeSrc": "2270:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2270:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2295:18:136",
                            "nodeType": "YulLiteral",
                            "src": "2295:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2266:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2266:3:136"
                        },
                        "nativeSrc": "2266:48:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2266:48:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2243:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2243:6:136"
                    },
                    "nativeSrc": "2243:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2243:72:136"
                  },
                  "nativeSrc": "2243:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2243:72:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2335:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2335:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2340:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2340:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2331:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2331:3:136"
                        },
                        "nativeSrc": "2331:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2331:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "2358:1:136",
                            "nodeType": "YulLiteral",
                            "src": "2358:1:136",
                            "type": "",
                            "value": "6"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "2371:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "2371:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2378:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "2378:4:136",
                                    "type": "",
                                    "value": "0x40"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "2367:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "2367:3:136"
                                },
                                "nativeSrc": "2367:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "2367:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "2361:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "2361:5:136"
                            },
                            "nativeSrc": "2361:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2361:23:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "2347:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "2347:10:136"
                        },
                        "nativeSrc": "2347:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2347:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2324:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2324:6:136"
                    },
                    "nativeSrc": "2324:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2324:62:136"
                  },
                  "nativeSrc": "2324:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2324:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2406:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2406:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2411:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2411:4:136",
                            "type": "",
                            "value": "0x60"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2402:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2402:3:136"
                        },
                        "nativeSrc": "2402:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2402:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "2432:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "2432:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2439:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "2439:4:136",
                                    "type": "",
                                    "value": "0x60"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "2428:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "2428:3:136"
                                },
                                "nativeSrc": "2428:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "2428:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "2422:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "2422:5:136"
                            },
                            "nativeSrc": "2422:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2422:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2447:18:136",
                            "nodeType": "YulLiteral",
                            "src": "2447:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "2418:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2418:3:136"
                        },
                        "nativeSrc": "2418:48:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2418:48:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2395:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2395:6:136"
                    },
                    "nativeSrc": "2395:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2395:72:136"
                  },
                  "nativeSrc": "2395:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2395:72:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2487:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2487:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2492:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2492:4:136",
                            "type": "",
                            "value": "0x80"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2483:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2483:3:136"
                        },
                        "nativeSrc": "2483:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2483:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "2509:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "2509:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "2516:4:136",
                                "nodeType": "YulLiteral",
                                "src": "2516:4:136",
                                "type": "",
                                "value": "0x80"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "2505:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "2505:3:136"
                            },
                            "nativeSrc": "2505:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2505:16:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "2499:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "2499:5:136"
                        },
                        "nativeSrc": "2499:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2499:23:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2476:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2476:6:136"
                    },
                    "nativeSrc": "2476:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2476:47:136"
                  },
                  "nativeSrc": "2476:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2476:47:136"
                }
              ]
            },
            "name": "abi_encode_struct_Price",
            "nativeSrc": "2135:394:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "2168:5:136",
                "nodeType": "YulTypedName",
                "src": "2168:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "2175:3:136",
                "nodeType": "YulTypedName",
                "src": "2175:3:136",
                "type": ""
              }
            ],
            "src": "2135:394:136"
          },
          {
            "body": {
              "nativeSrc": "2589:1517:136",
              "nodeType": "YulBlock",
              "src": "2589:1517:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "2606:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "2606:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2617:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2617:5:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "2611:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "2611:5:136"
                        },
                        "nativeSrc": "2611:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2611:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2599:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2599:6:136"
                    },
                    "nativeSrc": "2599:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2599:25:136"
                  },
                  "nativeSrc": "2599:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2599:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2644:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2644:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2649:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2649:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2640:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2640:3:136"
                        },
                        "nativeSrc": "2640:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2640:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "2667:1:136",
                            "nodeType": "YulLiteral",
                            "src": "2667:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "2680:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "2680:5:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "2687:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "2687:4:136",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "2676:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "2676:3:136"
                                },
                                "nativeSrc": "2676:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "2676:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "2670:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "2670:5:136"
                            },
                            "nativeSrc": "2670:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "2670:23:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "2656:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "2656:10:136"
                        },
                        "nativeSrc": "2656:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2656:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2633:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2633:6:136"
                    },
                    "nativeSrc": "2633:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2633:62:136"
                  },
                  "nativeSrc": "2633:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2633:62:136"
                },
                {
                  "nativeSrc": "2704:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2704:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2734:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2734:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2741:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2741:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2730:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2730:3:136"
                        },
                        "nativeSrc": "2730:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2730:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "2724:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "2724:5:136"
                    },
                    "nativeSrc": "2724:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2724:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0",
                      "nativeSrc": "2708:12:136",
                      "nodeType": "YulTypedName",
                      "src": "2708:12:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2767:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2767:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2772:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2772:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2763:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2763:3:136"
                        },
                        "nativeSrc": "2763:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2763:14:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "2779:6:136",
                        "nodeType": "YulLiteral",
                        "src": "2779:6:136",
                        "type": "",
                        "value": "0x0240"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2756:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2756:6:136"
                    },
                    "nativeSrc": "2756:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2756:30:136"
                  },
                  "nativeSrc": "2756:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2756:30:136"
                },
                {
                  "nativeSrc": "2795:72:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2795:72:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "2836:12:136",
                        "nodeType": "YulIdentifier",
                        "src": "2836:12:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2854:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2854:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2859:6:136",
                            "nodeType": "YulLiteral",
                            "src": "2859:6:136",
                            "type": "",
                            "value": "0x0240"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2850:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2850:3:136"
                        },
                        "nativeSrc": "2850:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2850:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "2807:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "2807:28:136"
                    },
                    "nativeSrc": "2807:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2807:60:136"
                  },
                  "variables": [
                    {
                      "name": "tail",
                      "nativeSrc": "2799:4:136",
                      "nodeType": "YulTypedName",
                      "src": "2799:4:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "2876:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2876:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "2908:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "2908:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2915:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2915:4:136",
                            "type": "",
                            "value": "0x60"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2904:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2904:3:136"
                        },
                        "nativeSrc": "2904:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2904:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "2898:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "2898:5:136"
                    },
                    "nativeSrc": "2898:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2898:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_1",
                      "nativeSrc": "2880:14:136",
                      "nodeType": "YulTypedName",
                      "src": "2880:14:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "2941:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2941:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "2946:4:136",
                            "nodeType": "YulLiteral",
                            "src": "2946:4:136",
                            "type": "",
                            "value": "0x60"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "2937:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2937:3:136"
                        },
                        "nativeSrc": "2937:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2937:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail",
                            "nativeSrc": "2957:4:136",
                            "nodeType": "YulIdentifier",
                            "src": "2957:4:136"
                          },
                          {
                            "name": "pos",
                            "nativeSrc": "2963:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "2963:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "2953:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "2953:3:136"
                        },
                        "nativeSrc": "2953:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "2953:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "2930:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "2930:6:136"
                    },
                    "nativeSrc": "2930:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2930:38:136"
                  },
                  "nativeSrc": "2930:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "2930:38:136"
                },
                {
                  "nativeSrc": "2977:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "2977:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail",
                        "nativeSrc": "2995:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "2995:4:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3001:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3001:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "2991:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "2991:3:136"
                    },
                    "nativeSrc": "2991:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "2991:15:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "2981:6:136",
                      "nodeType": "YulTypedName",
                      "src": "2981:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memberValue0_1",
                            "nativeSrc": "3045:14:136",
                            "nodeType": "YulIdentifier",
                            "src": "3045:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "3039:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "3039:5:136"
                        },
                        "nativeSrc": "3039:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3039:21:136"
                      },
                      {
                        "name": "tail",
                        "nativeSrc": "3062:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "3062:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Mappers",
                      "nativeSrc": "3015:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "3015:23:136"
                    },
                    "nativeSrc": "3015:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3015:52:136"
                  },
                  "nativeSrc": "3015:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3015:52:136"
                },
                {
                  "nativeSrc": "3076:54:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3076:54:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memberValue0_1",
                            "nativeSrc": "3108:14:136",
                            "nodeType": "YulIdentifier",
                            "src": "3108:14:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3124:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3124:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3104:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3104:3:136"
                        },
                        "nativeSrc": "3104:25:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3104:25:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3098:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3098:5:136"
                    },
                    "nativeSrc": "3098:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3098:32:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_2",
                      "nativeSrc": "3080:14:136",
                      "nodeType": "YulTypedName",
                      "src": "3080:14:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "tail",
                            "nativeSrc": "3150:4:136",
                            "nodeType": "YulIdentifier",
                            "src": "3150:4:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3156:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3156:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3146:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3146:3:136"
                        },
                        "nativeSrc": "3146:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3146:15:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3163:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3163:4:136",
                        "type": "",
                        "value": "0x40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3139:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3139:6:136"
                    },
                    "nativeSrc": "3139:29:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3139:29:136"
                  },
                  "nativeSrc": "3139:29:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3139:29:136"
                },
                {
                  "nativeSrc": "3177:19:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3177:19:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "3190:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "3190:6:136"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "3181:5:136",
                      "nodeType": "YulTypedName",
                      "src": "3181:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3205:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3205:35:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0_2",
                        "nativeSrc": "3225:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "3225:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3219:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3219:5:136"
                    },
                    "nativeSrc": "3219:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3219:21:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "3209:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3209:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "3256:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3256:6:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "3264:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3264:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "3249:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "3249:6:136"
                    },
                    "nativeSrc": "3249:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3249:22:136"
                  },
                  "nativeSrc": "3249:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3249:22:136"
                },
                {
                  "nativeSrc": "3280:24:136",
                  "nodeType": "YulAssignment",
                  "src": "3280:24:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail",
                        "nativeSrc": "3293:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "3293:4:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3299:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3299:4:136",
                        "type": "",
                        "value": "0x60"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3289:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3289:3:136"
                    },
                    "nativeSrc": "3289:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3289:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos_1",
                      "nativeSrc": "3280:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3280:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "3313:50:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3313:50:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "tail",
                            "nativeSrc": "3335:4:136",
                            "nodeType": "YulIdentifier",
                            "src": "3335:4:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "3345:1:136",
                                "nodeType": "YulLiteral",
                                "src": "3345:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "3348:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "3348:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "3341:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "3341:3:136"
                            },
                            "nativeSrc": "3341:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "3341:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3331:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3331:3:136"
                        },
                        "nativeSrc": "3331:25:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3331:25:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3358:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3358:4:136",
                        "type": "",
                        "value": "0x60"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3327:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3327:3:136"
                    },
                    "nativeSrc": "3327:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3327:36:136"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "3317:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3317:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3372:39:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3372:39:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0_2",
                        "nativeSrc": "3390:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "3390:14:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "3406:4:136",
                        "nodeType": "YulLiteral",
                        "src": "3406:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "3386:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "3386:3:136"
                    },
                    "nativeSrc": "3386:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3386:25:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "3376:6:136",
                      "nodeType": "YulTypedName",
                      "src": "3376:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "3420:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3420:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "3429:1:136",
                    "nodeType": "YulLiteral",
                    "src": "3429:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "3424:1:136",
                      "nodeType": "YulTypedName",
                      "src": "3424:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "3488:222:136",
                    "nodeType": "YulBlock",
                    "src": "3488:222:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "3509:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "3509:5:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "3524:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3524:6:136"
                                    },
                                    {
                                      "name": "tail",
                                      "nativeSrc": "3532:4:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "3532:4:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "3520:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3520:3:136"
                                  },
                                  "nativeSrc": "3520:17:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "3520:17:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "3543:2:136",
                                      "nodeType": "YulLiteral",
                                      "src": "3543:2:136",
                                      "type": "",
                                      "value": "95"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "3539:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "3539:3:136"
                                  },
                                  "nativeSrc": "3539:7:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "3539:7:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "3516:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "3516:3:136"
                              },
                              "nativeSrc": "3516:31:136",
                              "nodeType": "YulFunctionCall",
                              "src": "3516:31:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "3502:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3502:6:136"
                          },
                          "nativeSrc": "3502:46:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3502:46:136"
                        },
                        "nativeSrc": "3502:46:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "3502:46:136"
                      },
                      {
                        "nativeSrc": "3561:61:136",
                        "nodeType": "YulAssignment",
                        "src": "3561:61:136",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nativeSrc": "3606:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "3606:6:136"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "3600:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "3600:5:136"
                              },
                              "nativeSrc": "3600:13:136",
                              "nodeType": "YulFunctionCall",
                              "src": "3600:13:136"
                            },
                            {
                              "name": "tail_2",
                              "nativeSrc": "3615:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "3615:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_memory_ptr",
                            "nativeSrc": "3571:28:136",
                            "nodeType": "YulIdentifier",
                            "src": "3571:28:136"
                          },
                          "nativeSrc": "3571:51:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3571:51:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "3561:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3561:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3635:27:136",
                        "nodeType": "YulAssignment",
                        "src": "3635:27:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "3649:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "3649:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3657:4:136",
                              "nodeType": "YulLiteral",
                              "src": "3657:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3645:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3645:3:136"
                          },
                          "nativeSrc": "3645:17:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3645:17:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "3635:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "3635:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "3675:25:136",
                        "nodeType": "YulAssignment",
                        "src": "3675:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nativeSrc": "3688:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "3688:5:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3695:4:136",
                              "nodeType": "YulLiteral",
                              "src": "3695:4:136",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3684:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3684:3:136"
                          },
                          "nativeSrc": "3684:16:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3684:16:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nativeSrc": "3675:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3675:5:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "3450:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "3450:1:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "3453:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "3453:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "3447:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "3447:2:136"
                    },
                    "nativeSrc": "3447:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3447:13:136"
                  },
                  "nativeSrc": "3439:271:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "3461:18:136",
                    "nodeType": "YulBlock",
                    "src": "3461:18:136",
                    "statements": [
                      {
                        "nativeSrc": "3463:14:136",
                        "nodeType": "YulAssignment",
                        "src": "3463:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "3472:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "3472:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "3475:1:136",
                              "nodeType": "YulLiteral",
                              "src": "3475:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "3468:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3468:3:136"
                          },
                          "nativeSrc": "3468:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "3468:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "3463:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "3463:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "3443:3:136",
                    "nodeType": "YulBlock",
                    "src": "3443:3:136",
                    "statements": []
                  },
                  "src": "3439:271:136"
                },
                {
                  "nativeSrc": "3719:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3719:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "3751:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3751:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3758:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3758:4:136",
                            "type": "",
                            "value": "0x80"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3747:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3747:3:136"
                        },
                        "nativeSrc": "3747:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3747:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3741:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3741:5:136"
                    },
                    "nativeSrc": "3741:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3741:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_3",
                      "nativeSrc": "3723:14:136",
                      "nodeType": "YulTypedName",
                      "src": "3723:14:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memberValue0_3",
                        "nativeSrc": "3798:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "3798:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "3818:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3818:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3823:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3823:4:136",
                            "type": "",
                            "value": "0x80"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3814:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3814:3:136"
                        },
                        "nativeSrc": "3814:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3814:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_Oracle",
                      "nativeSrc": "3773:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "3773:24:136"
                    },
                    "nativeSrc": "3773:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3773:56:136"
                  },
                  "nativeSrc": "3773:56:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3773:56:136"
                },
                {
                  "nativeSrc": "3838:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3838:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "3870:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3870:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3877:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3877:4:136",
                            "type": "",
                            "value": "0xa0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3866:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3866:3:136"
                        },
                        "nativeSrc": "3866:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3866:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3860:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3860:5:136"
                    },
                    "nativeSrc": "3860:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3860:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_4",
                      "nativeSrc": "3842:14:136",
                      "nodeType": "YulTypedName",
                      "src": "3842:14:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memberValue0_4",
                        "nativeSrc": "3927:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "3927:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "3947:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "3947:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "3952:4:136",
                            "nodeType": "YulLiteral",
                            "src": "3952:4:136",
                            "type": "",
                            "value": "0xe0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3943:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3943:3:136"
                        },
                        "nativeSrc": "3943:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3943:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_UpdateConditions",
                      "nativeSrc": "3892:34:136",
                      "nodeType": "YulIdentifier",
                      "src": "3892:34:136"
                    },
                    "nativeSrc": "3892:66:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3892:66:136"
                  },
                  "nativeSrc": "3892:66:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "3892:66:136"
                },
                {
                  "nativeSrc": "3967:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "3967:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "3999:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "3999:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4006:4:136",
                            "nodeType": "YulLiteral",
                            "src": "4006:4:136",
                            "type": "",
                            "value": "0xc0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "3995:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "3995:3:136"
                        },
                        "nativeSrc": "3995:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "3995:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "3989:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "3989:5:136"
                    },
                    "nativeSrc": "3989:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "3989:23:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_5",
                      "nativeSrc": "3971:14:136",
                      "nodeType": "YulTypedName",
                      "src": "3971:14:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memberValue0_5",
                        "nativeSrc": "4045:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "4045:14:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "4065:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "4065:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4070:6:136",
                            "nodeType": "YulLiteral",
                            "src": "4070:6:136",
                            "type": "",
                            "value": "0x01a0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4061:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4061:3:136"
                        },
                        "nativeSrc": "4061:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4061:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_Price",
                      "nativeSrc": "4021:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "4021:23:136"
                    },
                    "nativeSrc": "4021:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4021:57:136"
                  },
                  "nativeSrc": "4021:57:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4021:57:136"
                },
                {
                  "nativeSrc": "4087:13:136",
                  "nodeType": "YulAssignment",
                  "src": "4087:13:136",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "4094:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "4094:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "4087:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4087:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_struct_Info",
            "nativeSrc": "2534:1572:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "2566:5:136",
                "nodeType": "YulTypedName",
                "src": "2566:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "2573:3:136",
                "nodeType": "YulTypedName",
                "src": "2573:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "2581:3:136",
                "nodeType": "YulTypedName",
                "src": "2581:3:136",
                "type": ""
              }
            ],
            "src": "2534:1572:136"
          },
          {
            "body": {
              "nativeSrc": "4258:104:136",
              "nodeType": "YulBlock",
              "src": "4258:104:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4275:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4275:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4286:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4286:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4268:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4268:6:136"
                    },
                    "nativeSrc": "4268:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4268:21:136"
                  },
                  "nativeSrc": "4268:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4268:21:136"
                },
                {
                  "nativeSrc": "4298:58:136",
                  "nodeType": "YulAssignment",
                  "src": "4298:58:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "4329:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4329:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "4341:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "4341:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "4352:2:136",
                            "nodeType": "YulLiteral",
                            "src": "4352:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "4337:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4337:3:136"
                        },
                        "nativeSrc": "4337:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4337:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_Info",
                      "nativeSrc": "4306:22:136",
                      "nodeType": "YulIdentifier",
                      "src": "4306:22:136"
                    },
                    "nativeSrc": "4306:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4306:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4298:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4298:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_Info_$28125_memory_ptr__to_t_struct$_Info_$28125_memory_ptr__fromStack_reversed",
            "nativeSrc": "4111:251:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4227:9:136",
                "nodeType": "YulTypedName",
                "src": "4227:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4238:6:136",
                "nodeType": "YulTypedName",
                "src": "4238:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4249:4:136",
                "nodeType": "YulTypedName",
                "src": "4249:4:136",
                "type": ""
              }
            ],
            "src": "4111:251:136"
          },
          {
            "body": {
              "nativeSrc": "4468:102:136",
              "nodeType": "YulBlock",
              "src": "4468:102:136",
              "statements": [
                {
                  "nativeSrc": "4478:26:136",
                  "nodeType": "YulAssignment",
                  "src": "4478:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4490:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4490:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4501:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4501:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4486:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4486:3:136"
                    },
                    "nativeSrc": "4486:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4486:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4478:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4478:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4520:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4520:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "4535:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4535:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "4551:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "4551:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "4556:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "4556:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "4547:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "4547:3:136"
                                },
                                "nativeSrc": "4547:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "4547:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "4560:1:136",
                                "nodeType": "YulLiteral",
                                "src": "4560:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "4543:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "4543:3:136"
                            },
                            "nativeSrc": "4543:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4543:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "4531:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4531:3:136"
                        },
                        "nativeSrc": "4531:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4531:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4513:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4513:6:136"
                    },
                    "nativeSrc": "4513:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4513:51:136"
                  },
                  "nativeSrc": "4513:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4513:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nativeSrc": "4367:203:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4437:9:136",
                "nodeType": "YulTypedName",
                "src": "4437:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4448:6:136",
                "nodeType": "YulTypedName",
                "src": "4448:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4459:4:136",
                "nodeType": "YulTypedName",
                "src": "4459:4:136",
                "type": ""
              }
            ],
            "src": "4367:203:136"
          },
          {
            "body": {
              "nativeSrc": "4670:92:136",
              "nodeType": "YulBlock",
              "src": "4670:92:136",
              "statements": [
                {
                  "nativeSrc": "4680:26:136",
                  "nodeType": "YulAssignment",
                  "src": "4680:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4692:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4692:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4703:2:136",
                        "nodeType": "YulLiteral",
                        "src": "4703:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "4688:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "4688:3:136"
                    },
                    "nativeSrc": "4688:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4688:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "4680:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "4680:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "4722:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "4722:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "4747:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "4747:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "4740:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "4740:6:136"
                            },
                            "nativeSrc": "4740:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4740:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "4733:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "4733:6:136"
                        },
                        "nativeSrc": "4733:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4733:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "4715:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4715:6:136"
                    },
                    "nativeSrc": "4715:41:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4715:41:136"
                  },
                  "nativeSrc": "4715:41:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "4715:41:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nativeSrc": "4575:187:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "4639:9:136",
                "nodeType": "YulTypedName",
                "src": "4639:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "4650:6:136",
                "nodeType": "YulTypedName",
                "src": "4650:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "4661:4:136",
                "nodeType": "YulTypedName",
                "src": "4661:4:136",
                "type": ""
              }
            ],
            "src": "4575:187:136"
          },
          {
            "body": {
              "nativeSrc": "4839:275:136",
              "nodeType": "YulBlock",
              "src": "4839:275:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "4888:16:136",
                    "nodeType": "YulBlock",
                    "src": "4888:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4897:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4897:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4900:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4900:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4890:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4890:6:136"
                          },
                          "nativeSrc": "4890:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4890:12:136"
                        },
                        "nativeSrc": "4890:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4890:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "4867:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "4867:6:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "4875:4:136",
                                "nodeType": "YulLiteral",
                                "src": "4875:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "4863:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "4863:3:136"
                            },
                            "nativeSrc": "4863:17:136",
                            "nodeType": "YulFunctionCall",
                            "src": "4863:17:136"
                          },
                          {
                            "name": "end",
                            "nativeSrc": "4882:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "4882:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "4859:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "4859:3:136"
                        },
                        "nativeSrc": "4859:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "4859:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "4852:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4852:6:136"
                    },
                    "nativeSrc": "4852:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4852:35:136"
                  },
                  "nativeSrc": "4849:55:136",
                  "nodeType": "YulIf",
                  "src": "4849:55:136"
                },
                {
                  "nativeSrc": "4913:30:136",
                  "nodeType": "YulAssignment",
                  "src": "4913:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "4936:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4936:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "4923:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "4923:12:136"
                    },
                    "nativeSrc": "4923:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4923:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nativeSrc": "4913:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "4913:6:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "4986:16:136",
                    "nodeType": "YulBlock",
                    "src": "4986:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "4995:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4995:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "4998:1:136",
                              "nodeType": "YulLiteral",
                              "src": "4998:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "4988:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "4988:6:136"
                          },
                          "nativeSrc": "4988:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "4988:12:136"
                        },
                        "nativeSrc": "4988:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "4988:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "4958:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "4958:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "4966:18:136",
                        "nodeType": "YulLiteral",
                        "src": "4966:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "4955:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "4955:2:136"
                    },
                    "nativeSrc": "4955:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "4955:30:136"
                  },
                  "nativeSrc": "4952:50:136",
                  "nodeType": "YulIf",
                  "src": "4952:50:136"
                },
                {
                  "nativeSrc": "5011:29:136",
                  "nodeType": "YulAssignment",
                  "src": "5011:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "5027:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5027:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5035:4:136",
                        "nodeType": "YulLiteral",
                        "src": "5035:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5023:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5023:3:136"
                    },
                    "nativeSrc": "5023:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5023:17:136"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nativeSrc": "5011:8:136",
                      "nodeType": "YulIdentifier",
                      "src": "5011:8:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5092:16:136",
                    "nodeType": "YulBlock",
                    "src": "5092:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5101:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5101:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5104:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5104:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5094:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5094:6:136"
                          },
                          "nativeSrc": "5094:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5094:12:136"
                        },
                        "nativeSrc": "5094:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5094:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "5063:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "5063:6:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "5071:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "5071:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "5059:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5059:3:136"
                            },
                            "nativeSrc": "5059:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5059:19:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "5080:4:136",
                            "nodeType": "YulLiteral",
                            "src": "5080:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5055:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5055:3:136"
                        },
                        "nativeSrc": "5055:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5055:30:136"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "5087:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "5087:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "5052:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "5052:2:136"
                    },
                    "nativeSrc": "5052:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5052:39:136"
                  },
                  "nativeSrc": "5049:59:136",
                  "nodeType": "YulIf",
                  "src": "5049:59:136"
                }
              ]
            },
            "name": "abi_decode_bytes_calldata",
            "nativeSrc": "4767:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "4802:6:136",
                "nodeType": "YulTypedName",
                "src": "4802:6:136",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "4810:3:136",
                "nodeType": "YulTypedName",
                "src": "4810:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nativeSrc": "4818:8:136",
                "nodeType": "YulTypedName",
                "src": "4818:8:136",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "4828:6:136",
                "nodeType": "YulTypedName",
                "src": "4828:6:136",
                "type": ""
              }
            ],
            "src": "4767:347:136"
          },
          {
            "body": {
              "nativeSrc": "5208:320:136",
              "nodeType": "YulBlock",
              "src": "5208:320:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "5254:16:136",
                    "nodeType": "YulBlock",
                    "src": "5254:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5263:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5263:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5266:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5266:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5256:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5256:6:136"
                          },
                          "nativeSrc": "5256:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5256:12:136"
                        },
                        "nativeSrc": "5256:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5256:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "5229:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "5229:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "5238:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "5238:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "5225:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5225:3:136"
                        },
                        "nativeSrc": "5225:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5225:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5250:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5250:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "5221:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5221:3:136"
                    },
                    "nativeSrc": "5221:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5221:32:136"
                  },
                  "nativeSrc": "5218:52:136",
                  "nodeType": "YulIf",
                  "src": "5218:52:136"
                },
                {
                  "nativeSrc": "5279:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5279:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5306:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5306:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "5293:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "5293:12:136"
                    },
                    "nativeSrc": "5293:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5293:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "5283:6:136",
                      "nodeType": "YulTypedName",
                      "src": "5283:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "5359:16:136",
                    "nodeType": "YulBlock",
                    "src": "5359:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "5368:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5368:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "5371:1:136",
                              "nodeType": "YulLiteral",
                              "src": "5371:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "5361:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5361:6:136"
                          },
                          "nativeSrc": "5361:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "5361:12:136"
                        },
                        "nativeSrc": "5361:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "5361:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "5331:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5331:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5339:18:136",
                        "nodeType": "YulLiteral",
                        "src": "5339:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "5328:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "5328:2:136"
                    },
                    "nativeSrc": "5328:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5328:30:136"
                  },
                  "nativeSrc": "5325:50:136",
                  "nodeType": "YulIf",
                  "src": "5325:50:136"
                },
                {
                  "nativeSrc": "5384:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "5384:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "5440:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "5440:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "5451:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5451:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "5436:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "5436:3:136"
                        },
                        "nativeSrc": "5436:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5436:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "5460:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "5460:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "5410:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "5410:25:136"
                    },
                    "nativeSrc": "5410:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5410:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "5388:8:136",
                      "nodeType": "YulTypedName",
                      "src": "5388:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "5398:8:136",
                      "nodeType": "YulTypedName",
                      "src": "5398:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "5477:18:136",
                  "nodeType": "YulAssignment",
                  "src": "5477:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "5487:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "5487:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "5477:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5477:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "5504:18:136",
                  "nodeType": "YulAssignment",
                  "src": "5504:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "5514:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "5514:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "5504:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5504:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes_calldata_ptr",
            "nativeSrc": "5119:409:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5166:9:136",
                "nodeType": "YulTypedName",
                "src": "5166:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "5177:7:136",
                "nodeType": "YulTypedName",
                "src": "5177:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "5189:6:136",
                "nodeType": "YulTypedName",
                "src": "5189:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "5197:6:136",
                "nodeType": "YulTypedName",
                "src": "5197:6:136",
                "type": ""
              }
            ],
            "src": "5119:409:136"
          },
          {
            "body": {
              "nativeSrc": "5634:76:136",
              "nodeType": "YulBlock",
              "src": "5634:76:136",
              "statements": [
                {
                  "nativeSrc": "5644:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5644:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5656:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5656:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5667:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5667:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5652:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5652:3:136"
                    },
                    "nativeSrc": "5652:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5652:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5644:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5644:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5686:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5686:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "5697:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "5697:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5679:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5679:6:136"
                    },
                    "nativeSrc": "5679:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5679:25:136"
                  },
                  "nativeSrc": "5679:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5679:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nativeSrc": "5533:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5603:9:136",
                "nodeType": "YulTypedName",
                "src": "5603:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5614:6:136",
                "nodeType": "YulTypedName",
                "src": "5614:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5625:4:136",
                "nodeType": "YulTypedName",
                "src": "5625:4:136",
                "type": ""
              }
            ],
            "src": "5533:177:136"
          },
          {
            "body": {
              "nativeSrc": "5810:91:136",
              "nodeType": "YulBlock",
              "src": "5810:91:136",
              "statements": [
                {
                  "nativeSrc": "5820:26:136",
                  "nodeType": "YulAssignment",
                  "src": "5820:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5832:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5832:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "5843:2:136",
                        "nodeType": "YulLiteral",
                        "src": "5843:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "5828:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "5828:3:136"
                    },
                    "nativeSrc": "5828:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5828:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "5820:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "5820:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "5862:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "5862:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "5884:1:136",
                            "nodeType": "YulLiteral",
                            "src": "5884:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value0",
                            "nativeSrc": "5887:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "5887:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "5873:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "5873:10:136"
                        },
                        "nativeSrc": "5873:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5873:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "5855:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5855:6:136"
                    },
                    "nativeSrc": "5855:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5855:40:136"
                  },
                  "nativeSrc": "5855:40:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "5855:40:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_int8__to_t_int8__fromStack_reversed",
            "nativeSrc": "5715:186:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "5779:9:136",
                "nodeType": "YulTypedName",
                "src": "5779:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "5790:6:136",
                "nodeType": "YulTypedName",
                "src": "5790:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "5801:4:136",
                "nodeType": "YulTypedName",
                "src": "5801:4:136",
                "type": ""
              }
            ],
            "src": "5715:186:136"
          },
          {
            "body": {
              "nativeSrc": "5950:85:136",
              "nodeType": "YulBlock",
              "src": "5950:85:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "6013:16:136",
                    "nodeType": "YulBlock",
                    "src": "6013:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "6022:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6022:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6025:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6025:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "6015:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6015:6:136"
                          },
                          "nativeSrc": "6015:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6015:12:136"
                        },
                        "nativeSrc": "6015:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "6015:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "5973:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "5973:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "5984:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "5984:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "5991:18:136",
                                "nodeType": "YulLiteral",
                                "src": "5991:18:136",
                                "type": "",
                                "value": "0xffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "5980:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "5980:3:136"
                            },
                            "nativeSrc": "5980:30:136",
                            "nodeType": "YulFunctionCall",
                            "src": "5980:30:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "5970:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "5970:2:136"
                        },
                        "nativeSrc": "5970:41:136",
                        "nodeType": "YulFunctionCall",
                        "src": "5970:41:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "5963:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "5963:6:136"
                    },
                    "nativeSrc": "5963:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "5963:49:136"
                  },
                  "nativeSrc": "5960:69:136",
                  "nodeType": "YulIf",
                  "src": "5960:69:136"
                }
              ]
            },
            "name": "validator_revert_uint64",
            "nativeSrc": "5906:129:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "5939:5:136",
                "nodeType": "YulTypedName",
                "src": "5939:5:136",
                "type": ""
              }
            ],
            "src": "5906:129:136"
          },
          {
            "body": {
              "nativeSrc": "6088:84:136",
              "nodeType": "YulBlock",
              "src": "6088:84:136",
              "statements": [
                {
                  "nativeSrc": "6098:29:136",
                  "nodeType": "YulAssignment",
                  "src": "6098:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "6120:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "6120:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "6107:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "6107:12:136"
                    },
                    "nativeSrc": "6107:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6107:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "6098:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "6098:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "6160:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "6160:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "6136:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "6136:23:136"
                    },
                    "nativeSrc": "6136:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6136:30:136"
                  },
                  "nativeSrc": "6136:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6136:30:136"
                }
              ]
            },
            "name": "abi_decode_uint64",
            "nativeSrc": "6040:132:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "6067:6:136",
                "nodeType": "YulTypedName",
                "src": "6067:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "6078:5:136",
                "nodeType": "YulTypedName",
                "src": "6078:5:136",
                "type": ""
              }
            ],
            "src": "6040:132:136"
          },
          {
            "body": {
              "nativeSrc": "6287:279:136",
              "nodeType": "YulBlock",
              "src": "6287:279:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "6333:16:136",
                    "nodeType": "YulBlock",
                    "src": "6333:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "6342:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6342:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "6345:1:136",
                              "nodeType": "YulLiteral",
                              "src": "6345:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "6335:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "6335:6:136"
                          },
                          "nativeSrc": "6335:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "6335:12:136"
                        },
                        "nativeSrc": "6335:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "6335:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "6308:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "6308:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "6317:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6317:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "6304:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6304:3:136"
                        },
                        "nativeSrc": "6304:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6304:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6329:2:136",
                        "nodeType": "YulLiteral",
                        "src": "6329:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "6300:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6300:3:136"
                    },
                    "nativeSrc": "6300:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6300:32:136"
                  },
                  "nativeSrc": "6297:52:136",
                  "nodeType": "YulIf",
                  "src": "6297:52:136"
                },
                {
                  "nativeSrc": "6358:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6358:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "6371:1:136",
                    "nodeType": "YulLiteral",
                    "src": "6371:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "6362:5:136",
                      "nodeType": "YulTypedName",
                      "src": "6362:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "6381:32:136",
                  "nodeType": "YulAssignment",
                  "src": "6381:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6403:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6403:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "6390:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "6390:12:136"
                    },
                    "nativeSrc": "6390:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6390:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "6381:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "6381:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "6422:15:136",
                  "nodeType": "YulAssignment",
                  "src": "6422:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "6432:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "6432:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "6422:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6422:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "6446:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "6446:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6478:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6478:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6489:2:136",
                            "nodeType": "YulLiteral",
                            "src": "6489:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6474:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6474:3:136"
                        },
                        "nativeSrc": "6474:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6474:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "6461:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "6461:12:136"
                    },
                    "nativeSrc": "6461:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6461:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "6450:7:136",
                      "nodeType": "YulTypedName",
                      "src": "6450:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "6526:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "6526:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "6502:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "6502:23:136"
                    },
                    "nativeSrc": "6502:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6502:32:136"
                  },
                  "nativeSrc": "6502:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6502:32:136"
                },
                {
                  "nativeSrc": "6543:17:136",
                  "nodeType": "YulAssignment",
                  "src": "6543:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "6553:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "6553:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "6543:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6543:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_userDefinedValueType$_ID_$29561t_uint64",
            "nativeSrc": "6177:389:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6245:9:136",
                "nodeType": "YulTypedName",
                "src": "6245:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "6256:7:136",
                "nodeType": "YulTypedName",
                "src": "6256:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "6268:6:136",
                "nodeType": "YulTypedName",
                "src": "6268:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "6276:6:136",
                "nodeType": "YulTypedName",
                "src": "6276:6:136",
                "type": ""
              }
            ],
            "src": "6177:389:136"
          },
          {
            "body": {
              "nativeSrc": "6728:328:136",
              "nodeType": "YulBlock",
              "src": "6728:328:136",
              "statements": [
                {
                  "nativeSrc": "6738:27:136",
                  "nodeType": "YulAssignment",
                  "src": "6738:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6750:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6750:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "6761:3:136",
                        "nodeType": "YulLiteral",
                        "src": "6761:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "6746:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "6746:3:136"
                    },
                    "nativeSrc": "6746:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6746:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "6738:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "6738:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "6781:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "6781:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "6803:1:136",
                            "nodeType": "YulLiteral",
                            "src": "6803:1:136",
                            "type": "",
                            "value": "7"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "6812:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "6812:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "6806:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "6806:5:136"
                            },
                            "nativeSrc": "6806:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "6806:13:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "6792:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "6792:10:136"
                        },
                        "nativeSrc": "6792:28:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6792:28:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6774:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6774:6:136"
                    },
                    "nativeSrc": "6774:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6774:47:136"
                  },
                  "nativeSrc": "6774:47:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6774:47:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6841:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6841:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6852:4:136",
                            "nodeType": "YulLiteral",
                            "src": "6852:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6837:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6837:3:136"
                        },
                        "nativeSrc": "6837:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6837:20:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nativeSrc": "6873:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "6873:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "6881:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "6881:4:136",
                                    "type": "",
                                    "value": "0x20"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "6869:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "6869:3:136"
                                },
                                "nativeSrc": "6869:17:136",
                                "nodeType": "YulFunctionCall",
                                "src": "6869:17:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "6863:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "6863:5:136"
                            },
                            "nativeSrc": "6863:24:136",
                            "nodeType": "YulFunctionCall",
                            "src": "6863:24:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6889:18:136",
                            "nodeType": "YulLiteral",
                            "src": "6889:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "6859:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6859:3:136"
                        },
                        "nativeSrc": "6859:49:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6859:49:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6830:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6830:6:136"
                    },
                    "nativeSrc": "6830:79:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6830:79:136"
                  },
                  "nativeSrc": "6830:79:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6830:79:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "6929:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "6929:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "6940:4:136",
                            "nodeType": "YulLiteral",
                            "src": "6940:4:136",
                            "type": "",
                            "value": "0x40"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "6925:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "6925:3:136"
                        },
                        "nativeSrc": "6925:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6925:20:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "6958:1:136",
                            "nodeType": "YulLiteral",
                            "src": "6958:1:136",
                            "type": "",
                            "value": "3"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nativeSrc": "6971:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "6971:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "6979:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "6979:4:136",
                                    "type": "",
                                    "value": "0x40"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "6967:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "6967:3:136"
                                },
                                "nativeSrc": "6967:17:136",
                                "nodeType": "YulFunctionCall",
                                "src": "6967:17:136"
                              }
                            ],
                            "functionName": {
                              "name": "mload",
                              "nativeSrc": "6961:5:136",
                              "nodeType": "YulIdentifier",
                              "src": "6961:5:136"
                            },
                            "nativeSrc": "6961:24:136",
                            "nodeType": "YulFunctionCall",
                            "src": "6961:24:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "6947:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "6947:10:136"
                        },
                        "nativeSrc": "6947:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "6947:39:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6918:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6918:6:136"
                    },
                    "nativeSrc": "6918:69:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6918:69:136"
                  },
                  "nativeSrc": "6918:69:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6918:69:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7007:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7007:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "7018:4:136",
                            "nodeType": "YulLiteral",
                            "src": "7018:4:136",
                            "type": "",
                            "value": "0x60"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7003:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7003:3:136"
                        },
                        "nativeSrc": "7003:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7003:20:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nativeSrc": "7035:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "7035:6:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "7043:4:136",
                                "nodeType": "YulLiteral",
                                "src": "7043:4:136",
                                "type": "",
                                "value": "0x60"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "7031:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7031:3:136"
                            },
                            "nativeSrc": "7031:17:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7031:17:136"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nativeSrc": "7025:5:136",
                          "nodeType": "YulIdentifier",
                          "src": "7025:5:136"
                        },
                        "nativeSrc": "7025:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7025:24:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "6996:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "6996:6:136"
                    },
                    "nativeSrc": "6996:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "6996:54:136"
                  },
                  "nativeSrc": "6996:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "6996:54:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_PythPrice_$29570_memory_ptr__to_t_struct$_PythPrice_$29570_memory_ptr__fromStack_reversed",
            "nativeSrc": "6571:485:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "6697:9:136",
                "nodeType": "YulTypedName",
                "src": "6697:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "6708:6:136",
                "nodeType": "YulTypedName",
                "src": "6708:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "6719:4:136",
                "nodeType": "YulTypedName",
                "src": "6719:4:136",
                "type": ""
              }
            ],
            "src": "6571:485:136"
          },
          {
            "body": {
              "nativeSrc": "7258:616:136",
              "nodeType": "YulBlock",
              "src": "7258:616:136",
              "statements": [
                {
                  "nativeSrc": "7268:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7268:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7286:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7286:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7297:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7297:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7282:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7282:3:136"
                    },
                    "nativeSrc": "7282:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7282:18:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "7272:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7272:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7316:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7316:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7327:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7327:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7309:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7309:6:136"
                    },
                    "nativeSrc": "7309:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7309:21:136"
                  },
                  "nativeSrc": "7309:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7309:21:136"
                },
                {
                  "nativeSrc": "7339:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7339:17:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "7350:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "7350:6:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "7343:3:136",
                      "nodeType": "YulTypedName",
                      "src": "7343:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7365:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7365:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "7385:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7385:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "7379:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "7379:5:136"
                    },
                    "nativeSrc": "7379:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7379:13:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "7369:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7369:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "7408:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7408:6:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7416:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7416:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "7401:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "7401:6:136"
                    },
                    "nativeSrc": "7401:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7401:22:136"
                  },
                  "nativeSrc": "7401:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "7401:22:136"
                },
                {
                  "nativeSrc": "7432:25:136",
                  "nodeType": "YulAssignment",
                  "src": "7432:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "7443:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "7443:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7454:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7454:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7439:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7439:3:136"
                    },
                    "nativeSrc": "7439:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7439:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "7432:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7432:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "7466:53:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7466:53:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "7488:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "7488:9:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "7503:1:136",
                                "nodeType": "YulLiteral",
                                "src": "7503:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "7506:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "7506:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "7499:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7499:3:136"
                            },
                            "nativeSrc": "7499:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "7499:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "7484:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7484:3:136"
                        },
                        "nativeSrc": "7484:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7484:30:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7516:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7516:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7480:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7480:3:136"
                    },
                    "nativeSrc": "7480:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7480:39:136"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "7470:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7470:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7528:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7528:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "7546:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7546:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "7554:2:136",
                        "nodeType": "YulLiteral",
                        "src": "7554:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "7542:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7542:3:136"
                    },
                    "nativeSrc": "7542:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7542:15:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "7532:6:136",
                      "nodeType": "YulTypedName",
                      "src": "7532:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "7566:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "7566:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "7575:1:136",
                    "nodeType": "YulLiteral",
                    "src": "7575:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "7570:1:136",
                      "nodeType": "YulTypedName",
                      "src": "7570:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "7634:211:136",
                    "nodeType": "YulBlock",
                    "src": "7634:211:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7655:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7655:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "7668:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "7668:6:136"
                                    },
                                    {
                                      "name": "headStart",
                                      "nativeSrc": "7676:9:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "7676:9:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "7664:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "7664:3:136"
                                  },
                                  "nativeSrc": "7664:22:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7664:22:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7692:2:136",
                                      "nodeType": "YulLiteral",
                                      "src": "7692:2:136",
                                      "type": "",
                                      "value": "63"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "7688:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "7688:3:136"
                                  },
                                  "nativeSrc": "7688:7:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7688:7:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "7660:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "7660:3:136"
                              },
                              "nativeSrc": "7660:36:136",
                              "nodeType": "YulFunctionCall",
                              "src": "7660:36:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "7648:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7648:6:136"
                          },
                          "nativeSrc": "7648:49:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7648:49:136"
                        },
                        "nativeSrc": "7648:49:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "7648:49:136"
                      },
                      {
                        "nativeSrc": "7710:55:136",
                        "nodeType": "YulAssignment",
                        "src": "7710:55:136",
                        "value": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nativeSrc": "7749:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "7749:6:136"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "7743:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "7743:5:136"
                              },
                              "nativeSrc": "7743:13:136",
                              "nodeType": "YulFunctionCall",
                              "src": "7743:13:136"
                            },
                            {
                              "name": "tail_2",
                              "nativeSrc": "7758:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "7758:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_struct_Info",
                            "nativeSrc": "7720:22:136",
                            "nodeType": "YulIdentifier",
                            "src": "7720:22:136"
                          },
                          "nativeSrc": "7720:45:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7720:45:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "7710:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7710:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "7778:25:136",
                        "nodeType": "YulAssignment",
                        "src": "7778:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "7792:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "7792:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7800:2:136",
                              "nodeType": "YulLiteral",
                              "src": "7800:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7788:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7788:3:136"
                          },
                          "nativeSrc": "7788:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7788:15:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "7778:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "7778:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "7816:19:136",
                        "nodeType": "YulAssignment",
                        "src": "7816:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "7827:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "7827:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7832:2:136",
                              "nodeType": "YulLiteral",
                              "src": "7832:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7823:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7823:3:136"
                          },
                          "nativeSrc": "7823:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7823:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "7816:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7816:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "7596:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "7596:1:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "7599:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "7599:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "7593:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "7593:2:136"
                    },
                    "nativeSrc": "7593:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7593:13:136"
                  },
                  "nativeSrc": "7585:260:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "7607:18:136",
                    "nodeType": "YulBlock",
                    "src": "7607:18:136",
                    "statements": [
                      {
                        "nativeSrc": "7609:14:136",
                        "nodeType": "YulAssignment",
                        "src": "7609:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "7618:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "7618:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "7621:1:136",
                              "nodeType": "YulLiteral",
                              "src": "7621:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "7614:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "7614:3:136"
                          },
                          "nativeSrc": "7614:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "7614:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "7609:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "7609:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "7589:3:136",
                    "nodeType": "YulBlock",
                    "src": "7589:3:136",
                    "statements": []
                  },
                  "src": "7585:260:136"
                },
                {
                  "nativeSrc": "7854:14:136",
                  "nodeType": "YulAssignment",
                  "src": "7854:14:136",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "7862:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "7862:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "7854:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "7854:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nativeSrc": "7061:813:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "7227:9:136",
                "nodeType": "YulTypedName",
                "src": "7227:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "7238:6:136",
                "nodeType": "YulTypedName",
                "src": "7238:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "7249:4:136",
                "nodeType": "YulTypedName",
                "src": "7249:4:136",
                "type": ""
              }
            ],
            "src": "7061:813:136"
          },
          {
            "body": {
              "nativeSrc": "7973:156:136",
              "nodeType": "YulBlock",
              "src": "7973:156:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8019:16:136",
                    "nodeType": "YulBlock",
                    "src": "8019:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8028:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8028:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8031:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8031:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8021:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8021:6:136"
                          },
                          "nativeSrc": "8021:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8021:12:136"
                        },
                        "nativeSrc": "8021:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8021:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "7994:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "7994:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "8003:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8003:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "7990:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "7990:3:136"
                        },
                        "nativeSrc": "7990:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "7990:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8015:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8015:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "7986:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "7986:3:136"
                    },
                    "nativeSrc": "7986:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "7986:32:136"
                  },
                  "nativeSrc": "7983:52:136",
                  "nodeType": "YulIf",
                  "src": "7983:52:136"
                },
                {
                  "nativeSrc": "8044:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8044:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "8057:1:136",
                    "nodeType": "YulLiteral",
                    "src": "8057:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "8048:5:136",
                      "nodeType": "YulTypedName",
                      "src": "8048:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "8067:32:136",
                  "nodeType": "YulAssignment",
                  "src": "8067:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8089:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8089:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8076:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8076:12:136"
                    },
                    "nativeSrc": "8076:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8076:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "8067:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "8067:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8108:15:136",
                  "nodeType": "YulAssignment",
                  "src": "8108:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "8118:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "8118:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "8108:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8108:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_userDefinedValueType$_ID_$29561",
            "nativeSrc": "7879:250:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "7939:9:136",
                "nodeType": "YulTypedName",
                "src": "7939:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "7950:7:136",
                "nodeType": "YulTypedName",
                "src": "7950:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "7962:6:136",
                "nodeType": "YulTypedName",
                "src": "7962:6:136",
                "type": ""
              }
            ],
            "src": "7879:250:136"
          },
          {
            "body": {
              "nativeSrc": "8176:76:136",
              "nodeType": "YulBlock",
              "src": "8176:76:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8230:16:136",
                    "nodeType": "YulBlock",
                    "src": "8230:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8239:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8239:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8242:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8242:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8232:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8232:6:136"
                          },
                          "nativeSrc": "8232:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8232:12:136"
                        },
                        "nativeSrc": "8232:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8232:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "8199:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "8199:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nativeSrc": "8220:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "8220:5:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nativeSrc": "8213:6:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "8213:6:136"
                                },
                                "nativeSrc": "8213:13:136",
                                "nodeType": "YulFunctionCall",
                                "src": "8213:13:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "8206:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "8206:6:136"
                            },
                            "nativeSrc": "8206:21:136",
                            "nodeType": "YulFunctionCall",
                            "src": "8206:21:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "8196:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "8196:2:136"
                        },
                        "nativeSrc": "8196:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8196:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "8189:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8189:6:136"
                    },
                    "nativeSrc": "8189:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8189:40:136"
                  },
                  "nativeSrc": "8186:60:136",
                  "nodeType": "YulIf",
                  "src": "8186:60:136"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nativeSrc": "8134:118:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "8165:5:136",
                "nodeType": "YulTypedName",
                "src": "8165:5:136",
                "type": ""
              }
            ],
            "src": "8134:118:136"
          },
          {
            "body": {
              "nativeSrc": "8361:435:136",
              "nodeType": "YulBlock",
              "src": "8361:435:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "8407:16:136",
                    "nodeType": "YulBlock",
                    "src": "8407:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8416:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8416:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8419:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8419:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8409:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8409:6:136"
                          },
                          "nativeSrc": "8409:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8409:12:136"
                        },
                        "nativeSrc": "8409:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8409:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "8382:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "8382:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "8391:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8391:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "8378:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8378:3:136"
                        },
                        "nativeSrc": "8378:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8378:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8403:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8403:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "8374:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8374:3:136"
                    },
                    "nativeSrc": "8374:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8374:32:136"
                  },
                  "nativeSrc": "8371:52:136",
                  "nodeType": "YulIf",
                  "src": "8371:52:136"
                },
                {
                  "nativeSrc": "8432:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8432:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8459:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8459:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8446:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8446:12:136"
                    },
                    "nativeSrc": "8446:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8446:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "8436:6:136",
                      "nodeType": "YulTypedName",
                      "src": "8436:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "8512:16:136",
                    "nodeType": "YulBlock",
                    "src": "8512:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "8521:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8521:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "8524:1:136",
                              "nodeType": "YulLiteral",
                              "src": "8524:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "8514:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8514:6:136"
                          },
                          "nativeSrc": "8514:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "8514:12:136"
                        },
                        "nativeSrc": "8514:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "8514:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "8484:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "8484:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8492:18:136",
                        "nodeType": "YulLiteral",
                        "src": "8492:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "8481:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "8481:2:136"
                    },
                    "nativeSrc": "8481:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8481:30:136"
                  },
                  "nativeSrc": "8478:50:136",
                  "nodeType": "YulIf",
                  "src": "8478:50:136"
                },
                {
                  "nativeSrc": "8537:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8537:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8593:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8593:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "8604:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8604:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8589:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8589:3:136"
                        },
                        "nativeSrc": "8589:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8589:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "8613:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "8613:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "8563:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "8563:25:136"
                    },
                    "nativeSrc": "8563:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8563:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "8541:8:136",
                      "nodeType": "YulTypedName",
                      "src": "8541:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "8551:8:136",
                      "nodeType": "YulTypedName",
                      "src": "8551:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "8630:18:136",
                  "nodeType": "YulAssignment",
                  "src": "8630:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "8640:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "8640:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "8630:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8630:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8657:18:136",
                  "nodeType": "YulAssignment",
                  "src": "8657:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "8667:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "8667:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "8657:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8657:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "8684:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "8684:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "8714:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "8714:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "8725:2:136",
                            "nodeType": "YulLiteral",
                            "src": "8725:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "8710:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8710:3:136"
                        },
                        "nativeSrc": "8710:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8710:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "8697:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "8697:12:136"
                    },
                    "nativeSrc": "8697:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8697:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "8688:5:136",
                      "nodeType": "YulTypedName",
                      "src": "8688:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "8760:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "8760:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nativeSrc": "8738:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "8738:21:136"
                    },
                    "nativeSrc": "8738:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8738:28:136"
                  },
                  "nativeSrc": "8738:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8738:28:136"
                },
                {
                  "nativeSrc": "8775:15:136",
                  "nodeType": "YulAssignment",
                  "src": "8775:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "8785:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "8785:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "8775:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8775:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nativeSrc": "8257:539:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "8311:9:136",
                "nodeType": "YulTypedName",
                "src": "8311:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "8322:7:136",
                "nodeType": "YulTypedName",
                "src": "8322:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "8334:6:136",
                "nodeType": "YulTypedName",
                "src": "8334:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "8342:6:136",
                "nodeType": "YulTypedName",
                "src": "8342:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "8350:6:136",
                "nodeType": "YulTypedName",
                "src": "8350:6:136",
                "type": ""
              }
            ],
            "src": "8257:539:136"
          },
          {
            "body": {
              "nativeSrc": "8900:103:136",
              "nodeType": "YulBlock",
              "src": "8900:103:136",
              "statements": [
                {
                  "nativeSrc": "8910:26:136",
                  "nodeType": "YulAssignment",
                  "src": "8910:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8922:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8922:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "8933:2:136",
                        "nodeType": "YulLiteral",
                        "src": "8933:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "8918:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "8918:3:136"
                    },
                    "nativeSrc": "8918:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8918:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "8910:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "8910:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "8952:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "8952:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "8967:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "8967:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "8979:3:136",
                                "nodeType": "YulLiteral",
                                "src": "8979:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "8984:10:136",
                                "nodeType": "YulLiteral",
                                "src": "8984:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "8975:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "8975:3:136"
                            },
                            "nativeSrc": "8975:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "8975:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "8963:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "8963:3:136"
                        },
                        "nativeSrc": "8963:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "8963:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "8945:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "8945:6:136"
                    },
                    "nativeSrc": "8945:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "8945:52:136"
                  },
                  "nativeSrc": "8945:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "8945:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nativeSrc": "8801:202:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "8869:9:136",
                "nodeType": "YulTypedName",
                "src": "8869:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "8880:6:136",
                "nodeType": "YulTypedName",
                "src": "8880:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "8891:4:136",
                "nodeType": "YulTypedName",
                "src": "8891:4:136",
                "type": ""
              }
            ],
            "src": "8801:202:136"
          },
          {
            "body": {
              "nativeSrc": "9050:75:136",
              "nodeType": "YulBlock",
              "src": "9050:75:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "9103:16:136",
                    "nodeType": "YulBlock",
                    "src": "9103:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9112:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9112:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9115:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9115:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9105:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9105:6:136"
                          },
                          "nativeSrc": "9105:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "9105:12:136"
                        },
                        "nativeSrc": "9105:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "9105:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "9073:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "9073:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "9091:1:136",
                                "nodeType": "YulLiteral",
                                "src": "9091:1:136",
                                "type": "",
                                "value": "0"
                              },
                              {
                                "name": "value",
                                "nativeSrc": "9094:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "9094:5:136"
                              }
                            ],
                            "functionName": {
                              "name": "signextend",
                              "nativeSrc": "9080:10:136",
                              "nodeType": "YulIdentifier",
                              "src": "9080:10:136"
                            },
                            "nativeSrc": "9080:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "9080:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "9070:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "9070:2:136"
                        },
                        "nativeSrc": "9070:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9070:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "9063:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9063:6:136"
                    },
                    "nativeSrc": "9063:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9063:39:136"
                  },
                  "nativeSrc": "9060:59:136",
                  "nodeType": "YulIf",
                  "src": "9060:59:136"
                }
              ]
            },
            "name": "validator_revert_int8",
            "nativeSrc": "9008:117:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "9039:5:136",
                "nodeType": "YulTypedName",
                "src": "9039:5:136",
                "type": ""
              }
            ],
            "src": "9008:117:136"
          },
          {
            "body": {
              "nativeSrc": "9328:1021:136",
              "nodeType": "YulBlock",
              "src": "9328:1021:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "9375:16:136",
                    "nodeType": "YulBlock",
                    "src": "9375:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9384:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9384:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9387:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9387:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9377:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9377:6:136"
                          },
                          "nativeSrc": "9377:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "9377:12:136"
                        },
                        "nativeSrc": "9377:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "9377:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "9349:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "9349:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "9358:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9358:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "9345:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9345:3:136"
                        },
                        "nativeSrc": "9345:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9345:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9370:3:136",
                        "nodeType": "YulLiteral",
                        "src": "9370:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "9341:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "9341:3:136"
                    },
                    "nativeSrc": "9341:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9341:33:136"
                  },
                  "nativeSrc": "9338:53:136",
                  "nodeType": "YulIf",
                  "src": "9338:53:136"
                },
                {
                  "nativeSrc": "9400:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9400:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "9427:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "9427:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "9414:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "9414:12:136"
                    },
                    "nativeSrc": "9414:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9414:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "9404:6:136",
                      "nodeType": "YulTypedName",
                      "src": "9404:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9480:16:136",
                    "nodeType": "YulBlock",
                    "src": "9480:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9489:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9489:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9492:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9492:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9482:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9482:6:136"
                          },
                          "nativeSrc": "9482:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "9482:12:136"
                        },
                        "nativeSrc": "9482:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "9482:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "9452:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "9452:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9460:18:136",
                        "nodeType": "YulLiteral",
                        "src": "9460:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "9449:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "9449:2:136"
                    },
                    "nativeSrc": "9449:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9449:30:136"
                  },
                  "nativeSrc": "9446:50:136",
                  "nodeType": "YulIf",
                  "src": "9446:50:136"
                },
                {
                  "nativeSrc": "9505:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9505:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9561:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9561:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "9572:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9572:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9557:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9557:3:136"
                        },
                        "nativeSrc": "9557:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9557:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "9581:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "9581:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "9531:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "9531:25:136"
                    },
                    "nativeSrc": "9531:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9531:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "9509:8:136",
                      "nodeType": "YulTypedName",
                      "src": "9509:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "9519:8:136",
                      "nodeType": "YulTypedName",
                      "src": "9519:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "9598:18:136",
                  "nodeType": "YulAssignment",
                  "src": "9598:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "9608:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "9608:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "9598:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9598:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "9625:18:136",
                  "nodeType": "YulAssignment",
                  "src": "9625:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "9635:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "9635:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "9625:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9625:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "9652:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9652:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9682:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9682:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9693:2:136",
                            "nodeType": "YulLiteral",
                            "src": "9693:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9678:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9678:3:136"
                        },
                        "nativeSrc": "9678:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9678:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "9665:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "9665:12:136"
                    },
                    "nativeSrc": "9665:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9665:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "9656:5:136",
                      "nodeType": "YulTypedName",
                      "src": "9656:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "9728:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "9728:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "9706:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "9706:21:136"
                    },
                    "nativeSrc": "9706:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9706:28:136"
                  },
                  "nativeSrc": "9706:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "9706:28:136"
                },
                {
                  "nativeSrc": "9743:15:136",
                  "nodeType": "YulAssignment",
                  "src": "9743:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "9753:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "9753:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "9743:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9743:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "9767:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9767:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9799:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9799:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9810:2:136",
                            "nodeType": "YulLiteral",
                            "src": "9810:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9795:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9795:3:136"
                        },
                        "nativeSrc": "9795:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9795:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "9782:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "9782:12:136"
                    },
                    "nativeSrc": "9782:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9782:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "9771:7:136",
                      "nodeType": "YulTypedName",
                      "src": "9771:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9849:16:136",
                    "nodeType": "YulBlock",
                    "src": "9849:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "9858:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9858:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "9861:1:136",
                              "nodeType": "YulLiteral",
                              "src": "9861:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9851:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9851:6:136"
                          },
                          "nativeSrc": "9851:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "9851:12:136"
                        },
                        "nativeSrc": "9851:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "9851:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "9836:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "9836:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9845:1:136",
                            "nodeType": "YulLiteral",
                            "src": "9845:1:136",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "9833:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "9833:2:136"
                        },
                        "nativeSrc": "9833:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9833:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "9826:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9826:6:136"
                    },
                    "nativeSrc": "9826:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9826:22:136"
                  },
                  "nativeSrc": "9823:42:136",
                  "nodeType": "YulIf",
                  "src": "9823:42:136"
                },
                {
                  "nativeSrc": "9874:17:136",
                  "nodeType": "YulAssignment",
                  "src": "9874:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "9884:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "9884:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "9874:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "9874:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "9900:48:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "9900:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "9933:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "9933:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "9944:2:136",
                            "nodeType": "YulLiteral",
                            "src": "9944:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "9929:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "9929:3:136"
                        },
                        "nativeSrc": "9929:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "9929:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "9916:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "9916:12:136"
                    },
                    "nativeSrc": "9916:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9916:32:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "9904:8:136",
                      "nodeType": "YulTypedName",
                      "src": "9904:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "9993:16:136",
                    "nodeType": "YulBlock",
                    "src": "9993:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10002:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10002:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10005:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10005:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "9995:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "9995:6:136"
                          },
                          "nativeSrc": "9995:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "9995:12:136"
                        },
                        "nativeSrc": "9995:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "9995:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "9963:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "9963:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "9973:18:136",
                        "nodeType": "YulLiteral",
                        "src": "9973:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "9960:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "9960:2:136"
                    },
                    "nativeSrc": "9960:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "9960:32:136"
                  },
                  "nativeSrc": "9957:52:136",
                  "nodeType": "YulIf",
                  "src": "9957:52:136"
                },
                {
                  "nativeSrc": "10018:34:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10018:34:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10032:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "10032:9:136"
                      },
                      {
                        "name": "offset_1",
                        "nativeSrc": "10043:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "10043:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10028:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10028:3:136"
                    },
                    "nativeSrc": "10028:24:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10028:24:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "10022:2:136",
                      "nodeType": "YulTypedName",
                      "src": "10022:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10100:16:136",
                    "nodeType": "YulBlock",
                    "src": "10100:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10109:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10109:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10112:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10112:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10102:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10102:6:136"
                          },
                          "nativeSrc": "10102:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10102:12:136"
                        },
                        "nativeSrc": "10102:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10102:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "10079:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "10079:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "10083:4:136",
                                "nodeType": "YulLiteral",
                                "src": "10083:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "10075:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "10075:3:136"
                            },
                            "nativeSrc": "10075:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "10075:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "10090:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "10090:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "10071:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10071:3:136"
                        },
                        "nativeSrc": "10071:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10071:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "10064:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10064:6:136"
                    },
                    "nativeSrc": "10064:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10064:35:136"
                  },
                  "nativeSrc": "10061:55:136",
                  "nodeType": "YulIf",
                  "src": "10061:55:136"
                },
                {
                  "nativeSrc": "10125:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10125:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "10152:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "10152:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "10139:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "10139:12:136"
                    },
                    "nativeSrc": "10139:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10139:16:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "10129:6:136",
                      "nodeType": "YulTypedName",
                      "src": "10129:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10198:16:136",
                    "nodeType": "YulBlock",
                    "src": "10198:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10207:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10207:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10210:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10210:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10200:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10200:6:136"
                          },
                          "nativeSrc": "10200:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10200:12:136"
                        },
                        "nativeSrc": "10200:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10200:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "10170:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "10170:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10178:18:136",
                        "nodeType": "YulLiteral",
                        "src": "10178:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10167:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "10167:2:136"
                    },
                    "nativeSrc": "10167:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10167:30:136"
                  },
                  "nativeSrc": "10164:50:136",
                  "nodeType": "YulIf",
                  "src": "10164:50:136"
                },
                {
                  "body": {
                    "nativeSrc": "10272:16:136",
                    "nodeType": "YulBlock",
                    "src": "10272:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10281:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10281:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10284:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10284:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10274:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10274:6:136"
                          },
                          "nativeSrc": "10274:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10274:12:136"
                        },
                        "nativeSrc": "10274:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10274:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "10237:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "10237:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "10245:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "10245:1:136",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nativeSrc": "10248:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "10248:6:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "10241:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "10241:3:136"
                                },
                                "nativeSrc": "10241:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "10241:14:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "10233:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "10233:3:136"
                            },
                            "nativeSrc": "10233:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "10233:23:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10258:2:136",
                            "nodeType": "YulLiteral",
                            "src": "10258:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10229:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10229:3:136"
                        },
                        "nativeSrc": "10229:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10229:32:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "10263:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "10263:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10226:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "10226:2:136"
                    },
                    "nativeSrc": "10226:45:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10226:45:136"
                  },
                  "nativeSrc": "10223:65:136",
                  "nodeType": "YulIf",
                  "src": "10223:65:136"
                },
                {
                  "nativeSrc": "10297:21:136",
                  "nodeType": "YulAssignment",
                  "src": "10297:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "10311:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "10311:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10315:2:136",
                        "nodeType": "YulLiteral",
                        "src": "10315:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "10307:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10307:3:136"
                    },
                    "nativeSrc": "10307:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10307:11:136"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nativeSrc": "10297:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10297:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "10327:16:136",
                  "nodeType": "YulAssignment",
                  "src": "10327:16:136",
                  "value": {
                    "name": "length",
                    "nativeSrc": "10337:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "10337:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nativeSrc": "10327:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10327:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_int8t_enum$_Mappers_$28087t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nativeSrc": "9130:1219:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "9254:9:136",
                "nodeType": "YulTypedName",
                "src": "9254:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "9265:7:136",
                "nodeType": "YulTypedName",
                "src": "9265:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "9277:6:136",
                "nodeType": "YulTypedName",
                "src": "9277:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "9285:6:136",
                "nodeType": "YulTypedName",
                "src": "9285:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "9293:6:136",
                "nodeType": "YulTypedName",
                "src": "9293:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "9301:6:136",
                "nodeType": "YulTypedName",
                "src": "9301:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "9309:6:136",
                "nodeType": "YulTypedName",
                "src": "9309:6:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "9317:6:136",
                "nodeType": "YulTypedName",
                "src": "9317:6:136",
                "type": ""
              }
            ],
            "src": "9130:1219:136"
          },
          {
            "body": {
              "nativeSrc": "10494:702:136",
              "nodeType": "YulBlock",
              "src": "10494:702:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "10540:16:136",
                    "nodeType": "YulBlock",
                    "src": "10540:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10549:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10549:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10552:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10552:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10542:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10542:6:136"
                          },
                          "nativeSrc": "10542:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10542:12:136"
                        },
                        "nativeSrc": "10542:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10542:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "10515:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "10515:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "10524:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "10524:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "10511:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10511:3:136"
                        },
                        "nativeSrc": "10511:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10511:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10536:2:136",
                        "nodeType": "YulLiteral",
                        "src": "10536:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "10507:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "10507:3:136"
                    },
                    "nativeSrc": "10507:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10507:32:136"
                  },
                  "nativeSrc": "10504:52:136",
                  "nodeType": "YulIf",
                  "src": "10504:52:136"
                },
                {
                  "nativeSrc": "10565:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10565:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "10592:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "10592:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "10579:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "10579:12:136"
                    },
                    "nativeSrc": "10579:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10579:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "10569:6:136",
                      "nodeType": "YulTypedName",
                      "src": "10569:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "10645:16:136",
                    "nodeType": "YulBlock",
                    "src": "10645:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "10654:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10654:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "10657:1:136",
                              "nodeType": "YulLiteral",
                              "src": "10657:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "10647:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10647:6:136"
                          },
                          "nativeSrc": "10647:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "10647:12:136"
                        },
                        "nativeSrc": "10647:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "10647:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "10617:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "10617:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "10625:18:136",
                        "nodeType": "YulLiteral",
                        "src": "10625:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10614:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "10614:2:136"
                    },
                    "nativeSrc": "10614:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10614:30:136"
                  },
                  "nativeSrc": "10611:50:136",
                  "nodeType": "YulIf",
                  "src": "10611:50:136"
                },
                {
                  "nativeSrc": "10670:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10670:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "10726:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "10726:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "10737:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "10737:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10722:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10722:3:136"
                        },
                        "nativeSrc": "10722:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10722:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "10746:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "10746:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "10696:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "10696:25:136"
                    },
                    "nativeSrc": "10696:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10696:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "10674:8:136",
                      "nodeType": "YulTypedName",
                      "src": "10674:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "10684:8:136",
                      "nodeType": "YulTypedName",
                      "src": "10684:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "10763:18:136",
                  "nodeType": "YulAssignment",
                  "src": "10763:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "10773:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "10773:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "10763:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10763:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "10790:18:136",
                  "nodeType": "YulAssignment",
                  "src": "10790:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "10800:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "10800:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "10790:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10790:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "10817:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10817:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "10847:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "10847:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10858:2:136",
                            "nodeType": "YulLiteral",
                            "src": "10858:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10843:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10843:3:136"
                        },
                        "nativeSrc": "10843:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10843:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "10830:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "10830:12:136"
                    },
                    "nativeSrc": "10830:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10830:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "10821:5:136",
                      "nodeType": "YulTypedName",
                      "src": "10821:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "10893:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "10893:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "10871:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "10871:21:136"
                    },
                    "nativeSrc": "10871:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10871:28:136"
                  },
                  "nativeSrc": "10871:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "10871:28:136"
                },
                {
                  "nativeSrc": "10908:15:136",
                  "nodeType": "YulAssignment",
                  "src": "10908:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "10918:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "10918:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "10908:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "10908:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "10932:48:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "10932:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "10965:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "10965:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "10976:2:136",
                            "nodeType": "YulLiteral",
                            "src": "10976:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "10961:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "10961:3:136"
                        },
                        "nativeSrc": "10961:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "10961:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "10948:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "10948:12:136"
                    },
                    "nativeSrc": "10948:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10948:32:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "10936:8:136",
                      "nodeType": "YulTypedName",
                      "src": "10936:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "11025:16:136",
                    "nodeType": "YulBlock",
                    "src": "11025:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11034:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11034:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11037:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11037:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11027:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11027:6:136"
                          },
                          "nativeSrc": "11027:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11027:12:136"
                        },
                        "nativeSrc": "11027:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11027:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "10995:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "10995:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11005:18:136",
                        "nodeType": "YulLiteral",
                        "src": "11005:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "10992:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "10992:2:136"
                    },
                    "nativeSrc": "10992:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "10992:32:136"
                  },
                  "nativeSrc": "10989:52:136",
                  "nodeType": "YulIf",
                  "src": "10989:52:136"
                },
                {
                  "nativeSrc": "11050:86:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11050:86:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11106:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11106:9:136"
                          },
                          {
                            "name": "offset_1",
                            "nativeSrc": "11117:8:136",
                            "nodeType": "YulIdentifier",
                            "src": "11117:8:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11102:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11102:3:136"
                        },
                        "nativeSrc": "11102:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11102:24:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "11128:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "11128:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "11076:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "11076:25:136"
                    },
                    "nativeSrc": "11076:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11076:60:136"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nativeSrc": "11054:8:136",
                      "nodeType": "YulTypedName",
                      "src": "11054:8:136",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nativeSrc": "11064:8:136",
                      "nodeType": "YulTypedName",
                      "src": "11064:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "11145:18:136",
                  "nodeType": "YulAssignment",
                  "src": "11145:18:136",
                  "value": {
                    "name": "value3_1",
                    "nativeSrc": "11155:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "11155:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "11145:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11145:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11172:18:136",
                  "nodeType": "YulAssignment",
                  "src": "11172:18:136",
                  "value": {
                    "name": "value4_1",
                    "nativeSrc": "11182:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "11182:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nativeSrc": "11172:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11172:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_int8t_bytes_calldata_ptr",
            "nativeSrc": "10354:842:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "10428:9:136",
                "nodeType": "YulTypedName",
                "src": "10428:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "10439:7:136",
                "nodeType": "YulTypedName",
                "src": "10439:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "10451:6:136",
                "nodeType": "YulTypedName",
                "src": "10451:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "10459:6:136",
                "nodeType": "YulTypedName",
                "src": "10459:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "10467:6:136",
                "nodeType": "YulTypedName",
                "src": "10467:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "10475:6:136",
                "nodeType": "YulTypedName",
                "src": "10475:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "10483:6:136",
                "nodeType": "YulTypedName",
                "src": "10483:6:136",
                "type": ""
              }
            ],
            "src": "10354:842:136"
          },
          {
            "body": {
              "nativeSrc": "11342:557:136",
              "nodeType": "YulBlock",
              "src": "11342:557:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "11388:16:136",
                    "nodeType": "YulBlock",
                    "src": "11388:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11397:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11397:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11400:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11400:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11390:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11390:6:136"
                          },
                          "nativeSrc": "11390:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11390:12:136"
                        },
                        "nativeSrc": "11390:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11390:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "11363:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "11363:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "11372:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11372:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "11359:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11359:3:136"
                        },
                        "nativeSrc": "11359:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11359:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11384:2:136",
                        "nodeType": "YulLiteral",
                        "src": "11384:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "11355:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "11355:3:136"
                    },
                    "nativeSrc": "11355:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11355:32:136"
                  },
                  "nativeSrc": "11352:52:136",
                  "nodeType": "YulIf",
                  "src": "11352:52:136"
                },
                {
                  "nativeSrc": "11413:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11413:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11440:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "11440:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "11427:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "11427:12:136"
                    },
                    "nativeSrc": "11427:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11427:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "11417:6:136",
                      "nodeType": "YulTypedName",
                      "src": "11417:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "11493:16:136",
                    "nodeType": "YulBlock",
                    "src": "11493:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11502:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11502:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11505:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11505:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11495:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11495:6:136"
                          },
                          "nativeSrc": "11495:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11495:12:136"
                        },
                        "nativeSrc": "11495:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11495:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "11465:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "11465:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11473:18:136",
                        "nodeType": "YulLiteral",
                        "src": "11473:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "11462:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "11462:2:136"
                    },
                    "nativeSrc": "11462:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11462:30:136"
                  },
                  "nativeSrc": "11459:50:136",
                  "nodeType": "YulIf",
                  "src": "11459:50:136"
                },
                {
                  "nativeSrc": "11518:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11518:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "11532:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "11532:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "11543:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "11543:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "11528:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "11528:3:136"
                    },
                    "nativeSrc": "11528:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11528:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "11522:2:136",
                      "nodeType": "YulTypedName",
                      "src": "11522:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "11589:16:136",
                    "nodeType": "YulBlock",
                    "src": "11589:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11598:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11598:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11601:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11601:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11591:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11591:6:136"
                          },
                          "nativeSrc": "11591:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11591:12:136"
                        },
                        "nativeSrc": "11591:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11591:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "11570:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "11570:7:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "11579:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "11579:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "11566:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11566:3:136"
                        },
                        "nativeSrc": "11566:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11566:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11584:3:136",
                        "nodeType": "YulLiteral",
                        "src": "11584:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "11562:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "11562:3:136"
                    },
                    "nativeSrc": "11562:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11562:26:136"
                  },
                  "nativeSrc": "11559:46:136",
                  "nodeType": "YulIf",
                  "src": "11559:46:136"
                },
                {
                  "nativeSrc": "11614:12:136",
                  "nodeType": "YulAssignment",
                  "src": "11614:12:136",
                  "value": {
                    "name": "_1",
                    "nativeSrc": "11624:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "11624:2:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "11614:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11614:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11635:48:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11635:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11668:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11668:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "11679:2:136",
                            "nodeType": "YulLiteral",
                            "src": "11679:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11664:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11664:3:136"
                        },
                        "nativeSrc": "11664:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11664:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "11651:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "11651:12:136"
                    },
                    "nativeSrc": "11651:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11651:32:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "11639:8:136",
                      "nodeType": "YulTypedName",
                      "src": "11639:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "11728:16:136",
                    "nodeType": "YulBlock",
                    "src": "11728:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "11737:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11737:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "11740:1:136",
                              "nodeType": "YulLiteral",
                              "src": "11740:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "11730:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "11730:6:136"
                          },
                          "nativeSrc": "11730:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "11730:12:136"
                        },
                        "nativeSrc": "11730:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "11730:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "11698:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "11698:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "11708:18:136",
                        "nodeType": "YulLiteral",
                        "src": "11708:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "11695:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "11695:2:136"
                    },
                    "nativeSrc": "11695:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11695:32:136"
                  },
                  "nativeSrc": "11692:52:136",
                  "nodeType": "YulIf",
                  "src": "11692:52:136"
                },
                {
                  "nativeSrc": "11753:86:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "11753:86:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "11809:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "11809:9:136"
                          },
                          {
                            "name": "offset_1",
                            "nativeSrc": "11820:8:136",
                            "nodeType": "YulIdentifier",
                            "src": "11820:8:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "11805:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "11805:3:136"
                        },
                        "nativeSrc": "11805:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11805:24:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "11831:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "11831:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "11779:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "11779:25:136"
                    },
                    "nativeSrc": "11779:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11779:60:136"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nativeSrc": "11757:8:136",
                      "nodeType": "YulTypedName",
                      "src": "11757:8:136",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nativeSrc": "11767:8:136",
                      "nodeType": "YulTypedName",
                      "src": "11767:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "11848:18:136",
                  "nodeType": "YulAssignment",
                  "src": "11848:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "11858:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "11858:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "11848:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11848:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "11875:18:136",
                  "nodeType": "YulAssignment",
                  "src": "11875:18:136",
                  "value": {
                    "name": "value2_1",
                    "nativeSrc": "11885:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "11885:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "11875:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11875:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_DataPushReport_$37274_calldata_ptrt_bytes_calldata_ptr",
            "nativeSrc": "11201:698:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "11292:9:136",
                "nodeType": "YulTypedName",
                "src": "11292:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "11303:7:136",
                "nodeType": "YulTypedName",
                "src": "11303:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "11315:6:136",
                "nodeType": "YulTypedName",
                "src": "11315:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "11323:6:136",
                "nodeType": "YulTypedName",
                "src": "11323:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "11331:6:136",
                "nodeType": "YulTypedName",
                "src": "11331:6:136",
                "type": ""
              }
            ],
            "src": "11201:698:136"
          },
          {
            "body": {
              "nativeSrc": "11949:86:136",
              "nodeType": "YulBlock",
              "src": "11949:86:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "12013:16:136",
                    "nodeType": "YulBlock",
                    "src": "12013:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "12022:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12022:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "12025:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12025:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "12015:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12015:6:136"
                          },
                          "nativeSrc": "12015:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "12015:12:136"
                        },
                        "nativeSrc": "12015:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "12015:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "11972:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "11972:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "11983:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "11983:5:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "11998:3:136",
                                        "nodeType": "YulLiteral",
                                        "src": "11998:3:136",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "12003:1:136",
                                        "nodeType": "YulLiteral",
                                        "src": "12003:1:136",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "11994:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "11994:3:136"
                                    },
                                    "nativeSrc": "11994:11:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "11994:11:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "12007:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "12007:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "11990:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "11990:3:136"
                                },
                                "nativeSrc": "11990:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "11990:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "11979:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "11979:3:136"
                            },
                            "nativeSrc": "11979:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "11979:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "11969:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "11969:2:136"
                        },
                        "nativeSrc": "11969:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "11969:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "11962:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "11962:6:136"
                    },
                    "nativeSrc": "11962:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "11962:50:136"
                  },
                  "nativeSrc": "11959:70:136",
                  "nodeType": "YulIf",
                  "src": "11959:70:136"
                }
              ]
            },
            "name": "validator_revert_address",
            "nativeSrc": "11904:131:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "11938:5:136",
                "nodeType": "YulTypedName",
                "src": "11938:5:136",
                "type": ""
              }
            ],
            "src": "11904:131:136"
          },
          {
            "body": {
              "nativeSrc": "12110:177:136",
              "nodeType": "YulBlock",
              "src": "12110:177:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "12156:16:136",
                    "nodeType": "YulBlock",
                    "src": "12156:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "12165:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12165:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "12168:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12168:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "12158:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12158:6:136"
                          },
                          "nativeSrc": "12158:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "12158:12:136"
                        },
                        "nativeSrc": "12158:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "12158:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "12131:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "12131:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "12140:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "12140:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "12127:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "12127:3:136"
                        },
                        "nativeSrc": "12127:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "12127:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12152:2:136",
                        "nodeType": "YulLiteral",
                        "src": "12152:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "12123:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12123:3:136"
                    },
                    "nativeSrc": "12123:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12123:32:136"
                  },
                  "nativeSrc": "12120:52:136",
                  "nodeType": "YulIf",
                  "src": "12120:52:136"
                },
                {
                  "nativeSrc": "12181:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "12181:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12207:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12207:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "12194:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "12194:12:136"
                    },
                    "nativeSrc": "12194:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12194:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "12185:5:136",
                      "nodeType": "YulTypedName",
                      "src": "12185:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "12251:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "12251:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "12226:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "12226:24:136"
                    },
                    "nativeSrc": "12226:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12226:31:136"
                  },
                  "nativeSrc": "12226:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "12226:31:136"
                },
                {
                  "nativeSrc": "12266:15:136",
                  "nodeType": "YulAssignment",
                  "src": "12266:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "12276:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "12276:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "12266:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "12266:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nativeSrc": "12040:247:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12076:9:136",
                "nodeType": "YulTypedName",
                "src": "12076:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "12087:7:136",
                "nodeType": "YulTypedName",
                "src": "12087:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "12099:6:136",
                "nodeType": "YulTypedName",
                "src": "12099:6:136",
                "type": ""
              }
            ],
            "src": "12040:247:136"
          },
          {
            "body": {
              "nativeSrc": "12463:105:136",
              "nodeType": "YulBlock",
              "src": "12463:105:136",
              "statements": [
                {
                  "nativeSrc": "12473:27:136",
                  "nodeType": "YulAssignment",
                  "src": "12473:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12485:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12485:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12496:3:136",
                        "nodeType": "YulLiteral",
                        "src": "12496:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12481:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12481:3:136"
                    },
                    "nativeSrc": "12481:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12481:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12473:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "12473:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "12544:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "12544:6:136"
                      },
                      {
                        "name": "headStart",
                        "nativeSrc": "12552:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12552:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_UpdateConditions",
                      "nativeSrc": "12509:34:136",
                      "nodeType": "YulIdentifier",
                      "src": "12509:34:136"
                    },
                    "nativeSrc": "12509:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12509:53:136"
                  },
                  "nativeSrc": "12509:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "12509:53:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_UpdateConditions_$28153_memory_ptr__to_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed",
            "nativeSrc": "12292:276:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12432:9:136",
                "nodeType": "YulTypedName",
                "src": "12432:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "12443:6:136",
                "nodeType": "YulTypedName",
                "src": "12443:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "12454:4:136",
                "nodeType": "YulTypedName",
                "src": "12454:4:136",
                "type": ""
              }
            ],
            "src": "12292:276:136"
          },
          {
            "body": {
              "nativeSrc": "12722:94:136",
              "nodeType": "YulBlock",
              "src": "12722:94:136",
              "statements": [
                {
                  "nativeSrc": "12732:27:136",
                  "nodeType": "YulAssignment",
                  "src": "12732:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "12744:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12744:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12755:3:136",
                        "nodeType": "YulLiteral",
                        "src": "12755:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "12740:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12740:3:136"
                    },
                    "nativeSrc": "12740:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12740:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "12732:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "12732:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "12792:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "12792:6:136"
                      },
                      {
                        "name": "headStart",
                        "nativeSrc": "12800:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "12800:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_Price",
                      "nativeSrc": "12768:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "12768:23:136"
                    },
                    "nativeSrc": "12768:42:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12768:42:136"
                  },
                  "nativeSrc": "12768:42:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "12768:42:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_Price_$28105_memory_ptr__to_t_struct$_Price_$28105_memory_ptr__fromStack_reversed",
            "nativeSrc": "12573:243:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "12691:9:136",
                "nodeType": "YulTypedName",
                "src": "12691:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "12702:6:136",
                "nodeType": "YulTypedName",
                "src": "12702:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "12713:4:136",
                "nodeType": "YulTypedName",
                "src": "12713:4:136",
                "type": ""
              }
            ],
            "src": "12573:243:136"
          },
          {
            "body": {
              "nativeSrc": "12900:86:136",
              "nodeType": "YulBlock",
              "src": "12900:86:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "12940:16:136",
                    "nodeType": "YulBlock",
                    "src": "12940:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "12949:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12949:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "12952:1:136",
                              "nodeType": "YulLiteral",
                              "src": "12952:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "12942:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12942:6:136"
                          },
                          "nativeSrc": "12942:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "12942:12:136"
                        },
                        "nativeSrc": "12942:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "12942:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "12921:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "12921:3:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "12926:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "12926:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "12917:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "12917:3:136"
                        },
                        "nativeSrc": "12917:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "12917:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "12935:3:136",
                        "nodeType": "YulLiteral",
                        "src": "12935:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "12913:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "12913:3:136"
                    },
                    "nativeSrc": "12913:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "12913:26:136"
                  },
                  "nativeSrc": "12910:46:136",
                  "nodeType": "YulIf",
                  "src": "12910:46:136"
                },
                {
                  "nativeSrc": "12965:15:136",
                  "nodeType": "YulAssignment",
                  "src": "12965:15:136",
                  "value": {
                    "name": "offset",
                    "nativeSrc": "12974:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "12974:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "12965:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "12965:5:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_struct_UpdateConditions_calldata",
            "nativeSrc": "12821:165:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "12874:6:136",
                "nodeType": "YulTypedName",
                "src": "12874:6:136",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "12882:3:136",
                "nodeType": "YulTypedName",
                "src": "12882:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "12890:5:136",
                "nodeType": "YulTypedName",
                "src": "12890:5:136",
                "type": ""
              }
            ],
            "src": "12821:165:136"
          },
          {
            "body": {
              "nativeSrc": "13098:151:136",
              "nodeType": "YulBlock",
              "src": "13098:151:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "13145:16:136",
                    "nodeType": "YulBlock",
                    "src": "13145:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "13154:1:136",
                              "nodeType": "YulLiteral",
                              "src": "13154:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "13157:1:136",
                              "nodeType": "YulLiteral",
                              "src": "13157:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "13147:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "13147:6:136"
                          },
                          "nativeSrc": "13147:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "13147:12:136"
                        },
                        "nativeSrc": "13147:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "13147:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "13119:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "13119:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "13128:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "13128:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "13115:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13115:3:136"
                        },
                        "nativeSrc": "13115:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13115:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13140:3:136",
                        "nodeType": "YulLiteral",
                        "src": "13140:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "13111:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13111:3:136"
                    },
                    "nativeSrc": "13111:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13111:33:136"
                  },
                  "nativeSrc": "13108:53:136",
                  "nodeType": "YulIf",
                  "src": "13108:53:136"
                },
                {
                  "nativeSrc": "13170:73:136",
                  "nodeType": "YulAssignment",
                  "src": "13170:73:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "13224:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "13224:9:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "13235:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "13235:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_struct_UpdateConditions_calldata",
                      "nativeSrc": "13180:43:136",
                      "nodeType": "YulIdentifier",
                      "src": "13180:43:136"
                    },
                    "nativeSrc": "13180:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13180:63:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "13170:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13170:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_UpdateConditions_$28153_calldata_ptr",
            "nativeSrc": "12991:258:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "13064:9:136",
                "nodeType": "YulTypedName",
                "src": "13064:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "13075:7:136",
                "nodeType": "YulTypedName",
                "src": "13075:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "13087:6:136",
                "nodeType": "YulTypedName",
                "src": "13087:6:136",
                "type": ""
              }
            ],
            "src": "12991:258:136"
          },
          {
            "body": {
              "nativeSrc": "13286:95:136",
              "nodeType": "YulBlock",
              "src": "13286:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13303:1:136",
                        "nodeType": "YulLiteral",
                        "src": "13303:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "13310:3:136",
                            "nodeType": "YulLiteral",
                            "src": "13310:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13315:10:136",
                            "nodeType": "YulLiteral",
                            "src": "13315:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "13306:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13306:3:136"
                        },
                        "nativeSrc": "13306:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13306:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13296:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13296:6:136"
                    },
                    "nativeSrc": "13296:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13296:31:136"
                  },
                  "nativeSrc": "13296:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13296:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13343:1:136",
                        "nodeType": "YulLiteral",
                        "src": "13343:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13346:4:136",
                        "nodeType": "YulLiteral",
                        "src": "13346:4:136",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13336:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13336:6:136"
                    },
                    "nativeSrc": "13336:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13336:15:136"
                  },
                  "nativeSrc": "13336:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13336:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13367:1:136",
                        "nodeType": "YulLiteral",
                        "src": "13367:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13370:4:136",
                        "nodeType": "YulLiteral",
                        "src": "13370:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "13360:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13360:6:136"
                    },
                    "nativeSrc": "13360:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13360:15:136"
                  },
                  "nativeSrc": "13360:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13360:15:136"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nativeSrc": "13254:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "13254:127:136"
          },
          {
            "body": {
              "nativeSrc": "13432:179:136",
              "nodeType": "YulBlock",
              "src": "13432:179:136",
              "statements": [
                {
                  "nativeSrc": "13442:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13442:35:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "13464:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "13464:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13472:4:136",
                        "nodeType": "YulLiteral",
                        "src": "13472:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "13460:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13460:3:136"
                    },
                    "nativeSrc": "13460:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13460:17:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "13446:10:136",
                      "nodeType": "YulTypedName",
                      "src": "13446:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "13552:22:136",
                    "nodeType": "YulBlock",
                    "src": "13552:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "13554:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "13554:16:136"
                          },
                          "nativeSrc": "13554:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "13554:18:136"
                        },
                        "nativeSrc": "13554:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "13554:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "13495:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "13495:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13507:18:136",
                            "nodeType": "YulLiteral",
                            "src": "13507:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "13492:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "13492:2:136"
                        },
                        "nativeSrc": "13492:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13492:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "13531:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "13531:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "13543:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "13543:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "13528:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "13528:2:136"
                        },
                        "nativeSrc": "13528:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13528:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "13489:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "13489:2:136"
                    },
                    "nativeSrc": "13489:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13489:62:136"
                  },
                  "nativeSrc": "13486:88:136",
                  "nodeType": "YulIf",
                  "src": "13486:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13590:2:136",
                        "nodeType": "YulLiteral",
                        "src": "13590:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "13594:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "13594:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13583:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13583:6:136"
                    },
                    "nativeSrc": "13583:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13583:22:136"
                  },
                  "nativeSrc": "13583:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13583:22:136"
                }
              ]
            },
            "name": "finalize_allocation_6165",
            "nativeSrc": "13386:225:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nativeSrc": "13420:6:136",
                "nodeType": "YulTypedName",
                "src": "13420:6:136",
                "type": ""
              }
            ],
            "src": "13386:225:136"
          },
          {
            "body": {
              "nativeSrc": "13662:177:136",
              "nodeType": "YulBlock",
              "src": "13662:177:136",
              "statements": [
                {
                  "nativeSrc": "13672:33:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13672:33:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "13694:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "13694:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "13702:2:136",
                        "nodeType": "YulLiteral",
                        "src": "13702:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "13690:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13690:3:136"
                    },
                    "nativeSrc": "13690:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13690:15:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "13676:10:136",
                      "nodeType": "YulTypedName",
                      "src": "13676:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "13780:22:136",
                    "nodeType": "YulBlock",
                    "src": "13780:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "13782:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "13782:16:136"
                          },
                          "nativeSrc": "13782:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "13782:18:136"
                        },
                        "nativeSrc": "13782:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "13782:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "13723:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "13723:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13735:18:136",
                            "nodeType": "YulLiteral",
                            "src": "13735:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "13720:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "13720:2:136"
                        },
                        "nativeSrc": "13720:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13720:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "13759:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "13759:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "13771:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "13771:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "13756:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "13756:2:136"
                        },
                        "nativeSrc": "13756:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13756:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "13717:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "13717:2:136"
                    },
                    "nativeSrc": "13717:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13717:62:136"
                  },
                  "nativeSrc": "13714:88:136",
                  "nodeType": "YulIf",
                  "src": "13714:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "13818:2:136",
                        "nodeType": "YulLiteral",
                        "src": "13818:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "13822:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "13822:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "13811:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "13811:6:136"
                    },
                    "nativeSrc": "13811:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13811:22:136"
                  },
                  "nativeSrc": "13811:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "13811:22:136"
                }
              ]
            },
            "name": "finalize_allocation_6166",
            "nativeSrc": "13616:223:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nativeSrc": "13650:6:136",
                "nodeType": "YulTypedName",
                "src": "13650:6:136",
                "type": ""
              }
            ],
            "src": "13616:223:136"
          },
          {
            "body": {
              "nativeSrc": "13891:202:136",
              "nodeType": "YulBlock",
              "src": "13891:202:136",
              "statements": [
                {
                  "nativeSrc": "13901:58:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "13901:58:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "13923:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "13923:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nativeSrc": "13939:4:136",
                                "nodeType": "YulIdentifier",
                                "src": "13939:4:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "13945:2:136",
                                "nodeType": "YulLiteral",
                                "src": "13945:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "13935:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "13935:3:136"
                            },
                            "nativeSrc": "13935:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13935:13:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "13954:2:136",
                                "nodeType": "YulLiteral",
                                "src": "13954:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "13950:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "13950:3:136"
                            },
                            "nativeSrc": "13950:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "13950:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "13931:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "13931:3:136"
                        },
                        "nativeSrc": "13931:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13931:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "13919:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "13919:3:136"
                    },
                    "nativeSrc": "13919:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13919:40:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "13905:10:136",
                      "nodeType": "YulTypedName",
                      "src": "13905:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "14034:22:136",
                    "nodeType": "YulBlock",
                    "src": "14034:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "14036:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "14036:16:136"
                          },
                          "nativeSrc": "14036:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14036:18:136"
                        },
                        "nativeSrc": "14036:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14036:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "13977:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "13977:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "13989:18:136",
                            "nodeType": "YulLiteral",
                            "src": "13989:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "13974:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "13974:2:136"
                        },
                        "nativeSrc": "13974:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "13974:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "14013:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "14013:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "14025:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14025:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "14010:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "14010:2:136"
                        },
                        "nativeSrc": "14010:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14010:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "13971:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "13971:2:136"
                    },
                    "nativeSrc": "13971:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "13971:62:136"
                  },
                  "nativeSrc": "13968:88:136",
                  "nodeType": "YulIf",
                  "src": "13968:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "14072:2:136",
                        "nodeType": "YulLiteral",
                        "src": "14072:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "14076:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "14076:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14065:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14065:6:136"
                    },
                    "nativeSrc": "14065:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14065:22:136"
                  },
                  "nativeSrc": "14065:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14065:22:136"
                }
              ]
            },
            "name": "finalize_allocation",
            "nativeSrc": "13844:249:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nativeSrc": "13873:6:136",
                "nodeType": "YulTypedName",
                "src": "13873:6:136",
                "type": ""
              },
              {
                "name": "size",
                "nativeSrc": "13881:4:136",
                "nodeType": "YulTypedName",
                "src": "13881:4:136",
                "type": ""
              }
            ],
            "src": "13844:249:136"
          },
          {
            "body": {
              "nativeSrc": "14156:129:136",
              "nodeType": "YulBlock",
              "src": "14156:129:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "14200:22:136",
                    "nodeType": "YulBlock",
                    "src": "14200:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "14202:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "14202:16:136"
                          },
                          "nativeSrc": "14202:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14202:18:136"
                        },
                        "nativeSrc": "14202:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14202:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "14172:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14172:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14180:18:136",
                        "nodeType": "YulLiteral",
                        "src": "14180:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "14169:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "14169:2:136"
                    },
                    "nativeSrc": "14169:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14169:30:136"
                  },
                  "nativeSrc": "14166:56:136",
                  "nodeType": "YulIf",
                  "src": "14166:56:136"
                },
                {
                  "nativeSrc": "14231:48:136",
                  "nodeType": "YulAssignment",
                  "src": "14231:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nativeSrc": "14251:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "14251:6:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "14259:2:136",
                                "nodeType": "YulLiteral",
                                "src": "14259:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "14247:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14247:3:136"
                            },
                            "nativeSrc": "14247:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14247:15:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "14268:2:136",
                                "nodeType": "YulLiteral",
                                "src": "14268:2:136",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "14264:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14264:3:136"
                            },
                            "nativeSrc": "14264:7:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14264:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "14243:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14243:3:136"
                        },
                        "nativeSrc": "14243:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14243:29:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14274:4:136",
                        "nodeType": "YulLiteral",
                        "src": "14274:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14239:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14239:3:136"
                    },
                    "nativeSrc": "14239:40:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14239:40:136"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nativeSrc": "14231:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "14231:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_string",
            "nativeSrc": "14098:187:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nativeSrc": "14136:6:136",
                "nodeType": "YulTypedName",
                "src": "14136:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nativeSrc": "14147:4:136",
                "nodeType": "YulTypedName",
                "src": "14147:4:136",
                "type": ""
              }
            ],
            "src": "14098:187:136"
          },
          {
            "body": {
              "nativeSrc": "14370:673:136",
              "nodeType": "YulBlock",
              "src": "14370:673:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "14416:16:136",
                    "nodeType": "YulBlock",
                    "src": "14416:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "14425:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14425:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "14428:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14428:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "14418:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14418:6:136"
                          },
                          "nativeSrc": "14418:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14418:12:136"
                        },
                        "nativeSrc": "14418:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14418:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "14391:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "14391:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "14400:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "14400:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "14387:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14387:3:136"
                        },
                        "nativeSrc": "14387:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14387:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14412:2:136",
                        "nodeType": "YulLiteral",
                        "src": "14412:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "14383:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14383:3:136"
                    },
                    "nativeSrc": "14383:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14383:32:136"
                  },
                  "nativeSrc": "14380:52:136",
                  "nodeType": "YulIf",
                  "src": "14380:52:136"
                },
                {
                  "nativeSrc": "14441:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14441:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14468:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "14468:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "14455:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "14455:12:136"
                    },
                    "nativeSrc": "14455:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14455:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "14445:6:136",
                      "nodeType": "YulTypedName",
                      "src": "14445:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "14521:16:136",
                    "nodeType": "YulBlock",
                    "src": "14521:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "14530:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14530:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "14533:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14533:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "14523:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14523:6:136"
                          },
                          "nativeSrc": "14523:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14523:12:136"
                        },
                        "nativeSrc": "14523:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14523:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "14493:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14493:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "14501:18:136",
                        "nodeType": "YulLiteral",
                        "src": "14501:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "14490:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "14490:2:136"
                    },
                    "nativeSrc": "14490:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14490:30:136"
                  },
                  "nativeSrc": "14487:50:136",
                  "nodeType": "YulIf",
                  "src": "14487:50:136"
                },
                {
                  "nativeSrc": "14546:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14546:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "14560:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "14560:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "14571:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14571:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "14556:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "14556:3:136"
                    },
                    "nativeSrc": "14556:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14556:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "14550:2:136",
                      "nodeType": "YulTypedName",
                      "src": "14550:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "14626:16:136",
                    "nodeType": "YulBlock",
                    "src": "14626:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "14635:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14635:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "14638:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14638:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "14628:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14628:6:136"
                          },
                          "nativeSrc": "14628:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14628:12:136"
                        },
                        "nativeSrc": "14628:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14628:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "14605:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "14605:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "14609:4:136",
                                "nodeType": "YulLiteral",
                                "src": "14609:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "14601:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14601:3:136"
                            },
                            "nativeSrc": "14601:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14601:13:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "14616:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "14616:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "14597:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14597:3:136"
                        },
                        "nativeSrc": "14597:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14597:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "14590:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14590:6:136"
                    },
                    "nativeSrc": "14590:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14590:35:136"
                  },
                  "nativeSrc": "14587:55:136",
                  "nodeType": "YulIf",
                  "src": "14587:55:136"
                },
                {
                  "nativeSrc": "14651:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14651:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "14678:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "14678:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "14665:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "14665:12:136"
                    },
                    "nativeSrc": "14665:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14665:16:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "14655:6:136",
                      "nodeType": "YulTypedName",
                      "src": "14655:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "14690:46:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14690:46:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "14729:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14729:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_string",
                      "nativeSrc": "14700:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "14700:28:136"
                    },
                    "nativeSrc": "14700:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14700:36:136"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "14694:2:136",
                      "nodeType": "YulTypedName",
                      "src": "14694:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "14745:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "14745:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "14765:2:136",
                        "nodeType": "YulLiteral",
                        "src": "14765:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "14759:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "14759:5:136"
                    },
                    "nativeSrc": "14759:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14759:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "14749:6:136",
                      "nodeType": "YulTypedName",
                      "src": "14749:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "14797:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14797:6:136"
                      },
                      {
                        "name": "_2",
                        "nativeSrc": "14805:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "14805:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nativeSrc": "14777:19:136",
                      "nodeType": "YulIdentifier",
                      "src": "14777:19:136"
                    },
                    "nativeSrc": "14777:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14777:31:136"
                  },
                  "nativeSrc": "14777:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14777:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "14824:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14824:6:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "14832:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14832:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14817:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14817:6:136"
                    },
                    "nativeSrc": "14817:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14817:22:136"
                  },
                  "nativeSrc": "14817:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14817:22:136"
                },
                {
                  "body": {
                    "nativeSrc": "14889:16:136",
                    "nodeType": "YulBlock",
                    "src": "14889:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "14898:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14898:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "14901:1:136",
                              "nodeType": "YulLiteral",
                              "src": "14901:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "14891:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14891:6:136"
                          },
                          "nativeSrc": "14891:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "14891:12:136"
                        },
                        "nativeSrc": "14891:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "14891:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "14862:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "14862:2:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "14866:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "14866:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "14858:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14858:3:136"
                            },
                            "nativeSrc": "14858:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14858:15:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14875:2:136",
                            "nodeType": "YulLiteral",
                            "src": "14875:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14854:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14854:3:136"
                        },
                        "nativeSrc": "14854:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14854:24:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "14880:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "14880:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "14851:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "14851:2:136"
                    },
                    "nativeSrc": "14851:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14851:37:136"
                  },
                  "nativeSrc": "14848:57:136",
                  "nodeType": "YulIf",
                  "src": "14848:57:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "14931:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "14931:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14939:2:136",
                            "nodeType": "YulLiteral",
                            "src": "14939:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14927:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14927:3:136"
                        },
                        "nativeSrc": "14927:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14927:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "14948:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "14948:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "14952:2:136",
                            "nodeType": "YulLiteral",
                            "src": "14952:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14944:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14944:3:136"
                        },
                        "nativeSrc": "14944:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14944:11:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "14957:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "14957:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nativeSrc": "14914:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "14914:12:136"
                    },
                    "nativeSrc": "14914:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14914:50:136"
                  },
                  "nativeSrc": "14914:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14914:50:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nativeSrc": "14988:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "14988:6:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "14996:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "14996:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "14984:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "14984:3:136"
                            },
                            "nativeSrc": "14984:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "14984:19:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15005:2:136",
                            "nodeType": "YulLiteral",
                            "src": "15005:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "14980:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "14980:3:136"
                        },
                        "nativeSrc": "14980:28:136",
                        "nodeType": "YulFunctionCall",
                        "src": "14980:28:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15010:1:136",
                        "nodeType": "YulLiteral",
                        "src": "15010:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "14973:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "14973:6:136"
                    },
                    "nativeSrc": "14973:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "14973:39:136"
                  },
                  "nativeSrc": "14973:39:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "14973:39:136"
                },
                {
                  "nativeSrc": "15021:16:136",
                  "nodeType": "YulAssignment",
                  "src": "15021:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "15031:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "15031:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "15021:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15021:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr",
            "nativeSrc": "14290:753:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "14336:9:136",
                "nodeType": "YulTypedName",
                "src": "14336:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "14347:7:136",
                "nodeType": "YulTypedName",
                "src": "14347:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "14359:6:136",
                "nodeType": "YulTypedName",
                "src": "14359:6:136",
                "type": ""
              }
            ],
            "src": "14290:753:136"
          },
          {
            "body": {
              "nativeSrc": "15173:76:136",
              "nodeType": "YulBlock",
              "src": "15173:76:136",
              "statements": [
                {
                  "nativeSrc": "15183:26:136",
                  "nodeType": "YulAssignment",
                  "src": "15183:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15195:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15195:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15206:2:136",
                        "nodeType": "YulLiteral",
                        "src": "15206:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "15191:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15191:3:136"
                    },
                    "nativeSrc": "15191:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15191:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "15183:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "15183:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15225:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15225:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "15236:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "15236:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15218:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15218:6:136"
                    },
                    "nativeSrc": "15218:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15218:25:136"
                  },
                  "nativeSrc": "15218:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15218:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID_$29561__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "15048:201:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15142:9:136",
                "nodeType": "YulTypedName",
                "src": "15142:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "15153:6:136",
                "nodeType": "YulTypedName",
                "src": "15153:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "15164:4:136",
                "nodeType": "YulTypedName",
                "src": "15164:4:136",
                "type": ""
              }
            ],
            "src": "15048:201:136"
          },
          {
            "body": {
              "nativeSrc": "15387:102:136",
              "nodeType": "YulBlock",
              "src": "15387:102:136",
              "statements": [
                {
                  "nativeSrc": "15397:26:136",
                  "nodeType": "YulAssignment",
                  "src": "15397:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15409:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15409:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15420:2:136",
                        "nodeType": "YulLiteral",
                        "src": "15420:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "15405:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15405:3:136"
                    },
                    "nativeSrc": "15405:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15405:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "15397:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "15397:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15439:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15439:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "15454:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "15454:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "15470:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "15470:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "15475:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "15475:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "15466:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "15466:3:136"
                                },
                                "nativeSrc": "15466:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "15466:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "15479:1:136",
                                "nodeType": "YulLiteral",
                                "src": "15479:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "15462:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "15462:3:136"
                            },
                            "nativeSrc": "15462:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "15462:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "15450:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15450:3:136"
                        },
                        "nativeSrc": "15450:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15450:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15432:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15432:6:136"
                    },
                    "nativeSrc": "15432:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15432:51:136"
                  },
                  "nativeSrc": "15432:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15432:51:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_contract$_IWitPriceFeedsConsumer_$27992__to_t_address__fromStack_reversed",
            "nativeSrc": "15254:235:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15356:9:136",
                "nodeType": "YulTypedName",
                "src": "15356:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "15367:6:136",
                "nodeType": "YulTypedName",
                "src": "15367:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "15378:4:136",
                "nodeType": "YulTypedName",
                "src": "15378:4:136",
                "type": ""
              }
            ],
            "src": "15254:235:136"
          },
          {
            "body": {
              "nativeSrc": "15615:110:136",
              "nodeType": "YulBlock",
              "src": "15615:110:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15632:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15632:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15643:2:136",
                        "nodeType": "YulLiteral",
                        "src": "15643:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "15625:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "15625:6:136"
                    },
                    "nativeSrc": "15625:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15625:21:136"
                  },
                  "nativeSrc": "15625:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "15625:21:136"
                },
                {
                  "nativeSrc": "15655:64:136",
                  "nodeType": "YulAssignment",
                  "src": "15655:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "15692:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "15692:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "15704:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15704:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "15715:2:136",
                            "nodeType": "YulLiteral",
                            "src": "15715:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "15700:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15700:3:136"
                        },
                        "nativeSrc": "15700:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15700:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "15663:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "15663:28:136"
                    },
                    "nativeSrc": "15663:56:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15663:56:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "15655:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "15655:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "15494:231:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15584:9:136",
                "nodeType": "YulTypedName",
                "src": "15584:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "15595:6:136",
                "nodeType": "YulTypedName",
                "src": "15595:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "15606:4:136",
                "nodeType": "YulTypedName",
                "src": "15606:4:136",
                "type": ""
              }
            ],
            "src": "15494:231:136"
          },
          {
            "body": {
              "nativeSrc": "15820:320:136",
              "nodeType": "YulBlock",
              "src": "15820:320:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "15866:16:136",
                    "nodeType": "YulBlock",
                    "src": "15866:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15875:1:136",
                              "nodeType": "YulLiteral",
                              "src": "15875:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15878:1:136",
                              "nodeType": "YulLiteral",
                              "src": "15878:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15868:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "15868:6:136"
                          },
                          "nativeSrc": "15868:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "15868:12:136"
                        },
                        "nativeSrc": "15868:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "15868:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "15841:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "15841:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "15850:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "15850:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "15837:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "15837:3:136"
                        },
                        "nativeSrc": "15837:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "15837:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15862:2:136",
                        "nodeType": "YulLiteral",
                        "src": "15862:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "15833:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "15833:3:136"
                    },
                    "nativeSrc": "15833:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15833:32:136"
                  },
                  "nativeSrc": "15830:52:136",
                  "nodeType": "YulIf",
                  "src": "15830:52:136"
                },
                {
                  "nativeSrc": "15891:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "15891:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "15918:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "15918:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "15905:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "15905:12:136"
                    },
                    "nativeSrc": "15905:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15905:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "15895:6:136",
                      "nodeType": "YulTypedName",
                      "src": "15895:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "15971:16:136",
                    "nodeType": "YulBlock",
                    "src": "15971:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "15980:1:136",
                              "nodeType": "YulLiteral",
                              "src": "15980:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "15983:1:136",
                              "nodeType": "YulLiteral",
                              "src": "15983:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "15973:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "15973:6:136"
                          },
                          "nativeSrc": "15973:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "15973:12:136"
                        },
                        "nativeSrc": "15973:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "15973:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "15943:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "15943:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "15951:18:136",
                        "nodeType": "YulLiteral",
                        "src": "15951:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "15940:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "15940:2:136"
                    },
                    "nativeSrc": "15940:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "15940:30:136"
                  },
                  "nativeSrc": "15937:50:136",
                  "nodeType": "YulIf",
                  "src": "15937:50:136"
                },
                {
                  "nativeSrc": "15996:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "15996:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "16052:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "16052:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "16063:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16063:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16048:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16048:3:136"
                        },
                        "nativeSrc": "16048:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16048:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "16072:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "16072:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "16022:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "16022:25:136"
                    },
                    "nativeSrc": "16022:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16022:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "16000:8:136",
                      "nodeType": "YulTypedName",
                      "src": "16000:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "16010:8:136",
                      "nodeType": "YulTypedName",
                      "src": "16010:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "16089:18:136",
                  "nodeType": "YulAssignment",
                  "src": "16089:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "16099:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "16099:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "16089:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16089:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16116:18:136",
                  "nodeType": "YulAssignment",
                  "src": "16116:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "16126:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "16126:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "16116:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16116:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nativeSrc": "15730:410:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "15778:9:136",
                "nodeType": "YulTypedName",
                "src": "15778:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "15789:7:136",
                "nodeType": "YulTypedName",
                "src": "15789:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "15801:6:136",
                "nodeType": "YulTypedName",
                "src": "15801:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "15809:6:136",
                "nodeType": "YulTypedName",
                "src": "15809:6:136",
                "type": ""
              }
            ],
            "src": "15730:410:136"
          },
          {
            "body": {
              "nativeSrc": "16297:538:136",
              "nodeType": "YulBlock",
              "src": "16297:538:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "16343:16:136",
                    "nodeType": "YulBlock",
                    "src": "16343:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "16352:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16352:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "16355:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16355:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "16345:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16345:6:136"
                          },
                          "nativeSrc": "16345:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16345:12:136"
                        },
                        "nativeSrc": "16345:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16345:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "16318:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "16318:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "16327:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "16327:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "16314:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16314:3:136"
                        },
                        "nativeSrc": "16314:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16314:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16339:2:136",
                        "nodeType": "YulLiteral",
                        "src": "16339:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "16310:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "16310:3:136"
                    },
                    "nativeSrc": "16310:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16310:32:136"
                  },
                  "nativeSrc": "16307:52:136",
                  "nodeType": "YulIf",
                  "src": "16307:52:136"
                },
                {
                  "nativeSrc": "16368:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16368:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "16395:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "16395:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "16382:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "16382:12:136"
                    },
                    "nativeSrc": "16382:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16382:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "16372:6:136",
                      "nodeType": "YulTypedName",
                      "src": "16372:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "16448:16:136",
                    "nodeType": "YulBlock",
                    "src": "16448:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "16457:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16457:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "16460:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16460:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "16450:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16450:6:136"
                          },
                          "nativeSrc": "16450:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16450:12:136"
                        },
                        "nativeSrc": "16450:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16450:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "16420:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "16420:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "16428:18:136",
                        "nodeType": "YulLiteral",
                        "src": "16428:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "16417:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "16417:2:136"
                    },
                    "nativeSrc": "16417:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16417:30:136"
                  },
                  "nativeSrc": "16414:50:136",
                  "nodeType": "YulIf",
                  "src": "16414:50:136"
                },
                {
                  "nativeSrc": "16473:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16473:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "16529:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "16529:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "16540:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16540:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16525:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16525:3:136"
                        },
                        "nativeSrc": "16525:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16525:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "16549:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "16549:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "16499:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "16499:25:136"
                    },
                    "nativeSrc": "16499:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16499:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "16477:8:136",
                      "nodeType": "YulTypedName",
                      "src": "16477:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "16487:8:136",
                      "nodeType": "YulTypedName",
                      "src": "16487:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "16566:18:136",
                  "nodeType": "YulAssignment",
                  "src": "16566:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "16576:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "16576:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "16566:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16566:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16593:18:136",
                  "nodeType": "YulAssignment",
                  "src": "16593:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "16603:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "16603:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "16593:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16593:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16620:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16620:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "16650:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "16650:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16661:2:136",
                            "nodeType": "YulLiteral",
                            "src": "16661:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16646:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16646:3:136"
                        },
                        "nativeSrc": "16646:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16646:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "16633:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "16633:12:136"
                    },
                    "nativeSrc": "16633:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16633:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "16624:5:136",
                      "nodeType": "YulTypedName",
                      "src": "16624:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "16696:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "16696:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "16674:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "16674:21:136"
                    },
                    "nativeSrc": "16674:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16674:28:136"
                  },
                  "nativeSrc": "16674:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "16674:28:136"
                },
                {
                  "nativeSrc": "16711:15:136",
                  "nodeType": "YulAssignment",
                  "src": "16711:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "16721:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "16721:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "16711:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16711:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16735:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "16735:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "16750:1:136",
                    "nodeType": "YulLiteral",
                    "src": "16750:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "16739:7:136",
                      "nodeType": "YulTypedName",
                      "src": "16739:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "16760:43:136",
                  "nodeType": "YulAssignment",
                  "src": "16760:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "16788:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "16788:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "16799:2:136",
                            "nodeType": "YulLiteral",
                            "src": "16799:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "16784:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "16784:3:136"
                        },
                        "nativeSrc": "16784:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16784:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "16771:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "16771:12:136"
                    },
                    "nativeSrc": "16771:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16771:32:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "16760:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "16760:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "16812:17:136",
                  "nodeType": "YulAssignment",
                  "src": "16812:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "16822:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "16822:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "16812:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16812:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_int8t_userDefinedValueType$_RadonHash_$37153",
            "nativeSrc": "16145:690:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "16239:9:136",
                "nodeType": "YulTypedName",
                "src": "16239:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "16250:7:136",
                "nodeType": "YulTypedName",
                "src": "16250:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "16262:6:136",
                "nodeType": "YulTypedName",
                "src": "16262:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "16270:6:136",
                "nodeType": "YulTypedName",
                "src": "16270:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "16278:6:136",
                "nodeType": "YulTypedName",
                "src": "16278:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "16286:6:136",
                "nodeType": "YulTypedName",
                "src": "16286:6:136",
                "type": ""
              }
            ],
            "src": "16145:690:136"
          },
          {
            "body": {
              "nativeSrc": "16884:75:136",
              "nodeType": "YulBlock",
              "src": "16884:75:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "16937:16:136",
                    "nodeType": "YulBlock",
                    "src": "16937:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "16946:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16946:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "16949:1:136",
                              "nodeType": "YulLiteral",
                              "src": "16949:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "16939:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "16939:6:136"
                          },
                          "nativeSrc": "16939:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "16939:12:136"
                        },
                        "nativeSrc": "16939:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "16939:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "16907:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "16907:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "16918:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "16918:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "16925:8:136",
                                "nodeType": "YulLiteral",
                                "src": "16925:8:136",
                                "type": "",
                                "value": "0xffffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "16914:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "16914:3:136"
                            },
                            "nativeSrc": "16914:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "16914:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "16904:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "16904:2:136"
                        },
                        "nativeSrc": "16904:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "16904:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "16897:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "16897:6:136"
                    },
                    "nativeSrc": "16897:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "16897:39:136"
                  },
                  "nativeSrc": "16894:59:136",
                  "nodeType": "YulIf",
                  "src": "16894:59:136"
                }
              ]
            },
            "name": "validator_revert_uint24",
            "nativeSrc": "16840:119:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "16873:5:136",
                "nodeType": "YulTypedName",
                "src": "16873:5:136",
                "type": ""
              }
            ],
            "src": "16840:119:136"
          },
          {
            "body": {
              "nativeSrc": "17075:317:136",
              "nodeType": "YulBlock",
              "src": "17075:317:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "17121:16:136",
                    "nodeType": "YulBlock",
                    "src": "17121:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17130:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17130:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17133:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17133:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17123:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17123:6:136"
                          },
                          "nativeSrc": "17123:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17123:12:136"
                        },
                        "nativeSrc": "17123:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17123:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "17096:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "17096:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "17105:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "17105:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "17092:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17092:3:136"
                        },
                        "nativeSrc": "17092:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17092:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17117:2:136",
                        "nodeType": "YulLiteral",
                        "src": "17117:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "17088:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17088:3:136"
                    },
                    "nativeSrc": "17088:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17088:32:136"
                  },
                  "nativeSrc": "17085:52:136",
                  "nodeType": "YulIf",
                  "src": "17085:52:136"
                },
                {
                  "nativeSrc": "17146:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17146:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17172:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17172:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17159:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17159:12:136"
                    },
                    "nativeSrc": "17159:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17159:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "17150:5:136",
                      "nodeType": "YulTypedName",
                      "src": "17150:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "17233:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "17233:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_userDefinedValueType_ID4",
                      "nativeSrc": "17191:41:136",
                      "nodeType": "YulIdentifier",
                      "src": "17191:41:136"
                    },
                    "nativeSrc": "17191:48:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17191:48:136"
                  },
                  "nativeSrc": "17191:48:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "17191:48:136"
                },
                {
                  "nativeSrc": "17248:15:136",
                  "nodeType": "YulAssignment",
                  "src": "17248:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "17258:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "17258:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "17248:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "17248:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "17272:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17272:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "17304:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "17304:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "17315:2:136",
                            "nodeType": "YulLiteral",
                            "src": "17315:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "17300:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17300:3:136"
                        },
                        "nativeSrc": "17300:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17300:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17287:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17287:12:136"
                    },
                    "nativeSrc": "17287:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17287:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "17276:7:136",
                      "nodeType": "YulTypedName",
                      "src": "17276:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "17352:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "17352:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "17328:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "17328:23:136"
                    },
                    "nativeSrc": "17328:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17328:32:136"
                  },
                  "nativeSrc": "17328:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "17328:32:136"
                },
                {
                  "nativeSrc": "17369:17:136",
                  "nodeType": "YulAssignment",
                  "src": "17369:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "17379:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "17379:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "17369:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "17369:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_userDefinedValueType$_ID4_$28155t_uint24",
            "nativeSrc": "16964:428:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17033:9:136",
                "nodeType": "YulTypedName",
                "src": "17033:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "17044:7:136",
                "nodeType": "YulTypedName",
                "src": "17044:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "17056:6:136",
                "nodeType": "YulTypedName",
                "src": "17056:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "17064:6:136",
                "nodeType": "YulTypedName",
                "src": "17064:6:136",
                "type": ""
              }
            ],
            "src": "16964:428:136"
          },
          {
            "body": {
              "nativeSrc": "17498:76:136",
              "nodeType": "YulBlock",
              "src": "17498:76:136",
              "statements": [
                {
                  "nativeSrc": "17508:26:136",
                  "nodeType": "YulAssignment",
                  "src": "17508:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17520:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17520:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17531:2:136",
                        "nodeType": "YulLiteral",
                        "src": "17531:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "17516:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17516:3:136"
                    },
                    "nativeSrc": "17516:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17516:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "17508:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "17508:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17550:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17550:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "17561:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17561:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "17543:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "17543:6:136"
                    },
                    "nativeSrc": "17543:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17543:25:136"
                  },
                  "nativeSrc": "17543:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "17543:25:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
            "nativeSrc": "17397:177:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17467:9:136",
                "nodeType": "YulTypedName",
                "src": "17467:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "17478:6:136",
                "nodeType": "YulTypedName",
                "src": "17478:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "17489:4:136",
                "nodeType": "YulTypedName",
                "src": "17489:4:136",
                "type": ""
              }
            ],
            "src": "17397:177:136"
          },
          {
            "body": {
              "nativeSrc": "17747:797:136",
              "nodeType": "YulBlock",
              "src": "17747:797:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "17794:16:136",
                    "nodeType": "YulBlock",
                    "src": "17794:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17803:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17803:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17806:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17806:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17796:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17796:6:136"
                          },
                          "nativeSrc": "17796:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17796:12:136"
                        },
                        "nativeSrc": "17796:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17796:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "17768:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "17768:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "17777:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "17777:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "17764:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17764:3:136"
                        },
                        "nativeSrc": "17764:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17764:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17789:3:136",
                        "nodeType": "YulLiteral",
                        "src": "17789:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "17760:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "17760:3:136"
                    },
                    "nativeSrc": "17760:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17760:33:136"
                  },
                  "nativeSrc": "17757:53:136",
                  "nodeType": "YulIf",
                  "src": "17757:53:136"
                },
                {
                  "nativeSrc": "17819:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17819:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "17846:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "17846:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "17833:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "17833:12:136"
                    },
                    "nativeSrc": "17833:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17833:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "17823:6:136",
                      "nodeType": "YulTypedName",
                      "src": "17823:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "17899:16:136",
                    "nodeType": "YulBlock",
                    "src": "17899:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "17908:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17908:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "17911:1:136",
                              "nodeType": "YulLiteral",
                              "src": "17911:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "17901:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17901:6:136"
                          },
                          "nativeSrc": "17901:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "17901:12:136"
                        },
                        "nativeSrc": "17901:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "17901:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "17871:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "17871:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "17879:18:136",
                        "nodeType": "YulLiteral",
                        "src": "17879:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "17868:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "17868:2:136"
                    },
                    "nativeSrc": "17868:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17868:30:136"
                  },
                  "nativeSrc": "17865:50:136",
                  "nodeType": "YulIf",
                  "src": "17865:50:136"
                },
                {
                  "nativeSrc": "17924:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "17924:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "17980:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "17980:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "17991:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "17991:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "17976:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "17976:3:136"
                        },
                        "nativeSrc": "17976:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "17976:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "18000:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "18000:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "17950:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "17950:25:136"
                    },
                    "nativeSrc": "17950:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "17950:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "17928:8:136",
                      "nodeType": "YulTypedName",
                      "src": "17928:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "17938:8:136",
                      "nodeType": "YulTypedName",
                      "src": "17938:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "18017:18:136",
                  "nodeType": "YulAssignment",
                  "src": "18017:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "18027:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "18027:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "18017:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18017:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18044:18:136",
                  "nodeType": "YulAssignment",
                  "src": "18044:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "18054:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "18054:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "18044:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18044:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18071:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18071:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "18101:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18101:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18112:2:136",
                            "nodeType": "YulLiteral",
                            "src": "18112:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18097:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18097:3:136"
                        },
                        "nativeSrc": "18097:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18097:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18084:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18084:12:136"
                    },
                    "nativeSrc": "18084:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18084:32:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "18075:5:136",
                      "nodeType": "YulTypedName",
                      "src": "18075:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "18147:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "18147:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "18125:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "18125:21:136"
                    },
                    "nativeSrc": "18125:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18125:28:136"
                  },
                  "nativeSrc": "18125:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18125:28:136"
                },
                {
                  "nativeSrc": "18162:15:136",
                  "nodeType": "YulAssignment",
                  "src": "18162:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "18172:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "18172:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "18162:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18162:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18186:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18186:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "18218:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18218:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18229:2:136",
                            "nodeType": "YulLiteral",
                            "src": "18229:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18214:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18214:3:136"
                        },
                        "nativeSrc": "18214:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18214:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18201:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18201:12:136"
                    },
                    "nativeSrc": "18201:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18201:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "18190:7:136",
                      "nodeType": "YulTypedName",
                      "src": "18190:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "18268:16:136",
                    "nodeType": "YulBlock",
                    "src": "18268:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "18277:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18277:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "18280:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18280:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "18270:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "18270:6:136"
                          },
                          "nativeSrc": "18270:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "18270:12:136"
                        },
                        "nativeSrc": "18270:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "18270:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value_1",
                            "nativeSrc": "18255:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "18255:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18264:1:136",
                            "nodeType": "YulLiteral",
                            "src": "18264:1:136",
                            "type": "",
                            "value": "4"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "18252:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "18252:2:136"
                        },
                        "nativeSrc": "18252:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18252:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "18245:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18245:6:136"
                    },
                    "nativeSrc": "18245:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18245:22:136"
                  },
                  "nativeSrc": "18242:42:136",
                  "nodeType": "YulIf",
                  "src": "18242:42:136"
                },
                {
                  "nativeSrc": "18293:17:136",
                  "nodeType": "YulAssignment",
                  "src": "18293:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "18303:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "18303:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nativeSrc": "18293:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18293:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18319:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18319:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "18351:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18351:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18362:2:136",
                            "nodeType": "YulLiteral",
                            "src": "18362:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18347:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18347:3:136"
                        },
                        "nativeSrc": "18347:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18347:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18334:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18334:12:136"
                    },
                    "nativeSrc": "18334:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18334:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "18323:7:136",
                      "nodeType": "YulTypedName",
                      "src": "18323:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "18400:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "18400:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "18375:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "18375:24:136"
                    },
                    "nativeSrc": "18375:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18375:33:136"
                  },
                  "nativeSrc": "18375:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18375:33:136"
                },
                {
                  "nativeSrc": "18417:17:136",
                  "nodeType": "YulAssignment",
                  "src": "18417:17:136",
                  "value": {
                    "name": "value_2",
                    "nativeSrc": "18427:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "18427:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nativeSrc": "18417:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18417:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18443:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18443:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "18458:1:136",
                    "nodeType": "YulLiteral",
                    "src": "18458:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "18447:7:136",
                      "nodeType": "YulTypedName",
                      "src": "18447:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "18468:44:136",
                  "nodeType": "YulAssignment",
                  "src": "18468:44:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "18496:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18496:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "18507:3:136",
                            "nodeType": "YulLiteral",
                            "src": "18507:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "18492:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18492:3:136"
                        },
                        "nativeSrc": "18492:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18492:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18479:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18479:12:136"
                    },
                    "nativeSrc": "18479:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18479:33:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_3",
                      "nativeSrc": "18468:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "18468:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18521:17:136",
                  "nodeType": "YulAssignment",
                  "src": "18521:17:136",
                  "value": {
                    "name": "value_3",
                    "nativeSrc": "18531:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "18531:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nativeSrc": "18521:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18521:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_int8t_enum$_Oracles_$28092t_addresst_bytes32",
            "nativeSrc": "17579:965:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "17673:9:136",
                "nodeType": "YulTypedName",
                "src": "17673:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "17684:7:136",
                "nodeType": "YulTypedName",
                "src": "17684:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "17696:6:136",
                "nodeType": "YulTypedName",
                "src": "17696:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "17704:6:136",
                "nodeType": "YulTypedName",
                "src": "17704:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "17712:6:136",
                "nodeType": "YulTypedName",
                "src": "17712:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "17720:6:136",
                "nodeType": "YulTypedName",
                "src": "17720:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "17728:6:136",
                "nodeType": "YulTypedName",
                "src": "17728:6:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "17736:6:136",
                "nodeType": "YulTypedName",
                "src": "17736:6:136",
                "type": ""
              }
            ],
            "src": "17579:965:136"
          },
          {
            "body": {
              "nativeSrc": "18619:156:136",
              "nodeType": "YulBlock",
              "src": "18619:156:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "18665:16:136",
                    "nodeType": "YulBlock",
                    "src": "18665:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "18674:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18674:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "18677:1:136",
                              "nodeType": "YulLiteral",
                              "src": "18677:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "18667:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "18667:6:136"
                          },
                          "nativeSrc": "18667:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "18667:12:136"
                        },
                        "nativeSrc": "18667:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "18667:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "18640:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "18640:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "18649:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "18649:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "18636:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "18636:3:136"
                        },
                        "nativeSrc": "18636:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "18636:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "18661:2:136",
                        "nodeType": "YulLiteral",
                        "src": "18661:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "18632:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "18632:3:136"
                    },
                    "nativeSrc": "18632:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18632:32:136"
                  },
                  "nativeSrc": "18629:52:136",
                  "nodeType": "YulIf",
                  "src": "18629:52:136"
                },
                {
                  "nativeSrc": "18690:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "18690:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "18703:1:136",
                    "nodeType": "YulLiteral",
                    "src": "18703:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "18694:5:136",
                      "nodeType": "YulTypedName",
                      "src": "18694:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "18713:32:136",
                  "nodeType": "YulAssignment",
                  "src": "18713:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "18735:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "18735:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "18722:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "18722:12:136"
                    },
                    "nativeSrc": "18722:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18722:23:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "18713:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "18713:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "18754:15:136",
                  "nodeType": "YulAssignment",
                  "src": "18754:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "18764:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "18764:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "18754:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18754:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes32",
            "nativeSrc": "18549:226:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "18585:9:136",
                "nodeType": "YulTypedName",
                "src": "18585:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "18596:7:136",
                "nodeType": "YulTypedName",
                "src": "18596:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "18608:6:136",
                "nodeType": "YulTypedName",
                "src": "18608:6:136",
                "type": ""
              }
            ],
            "src": "18549:226:136"
          },
          {
            "body": {
              "nativeSrc": "18935:162:136",
              "nodeType": "YulBlock",
              "src": "18935:162:136",
              "statements": [
                {
                  "nativeSrc": "18945:26:136",
                  "nodeType": "YulAssignment",
                  "src": "18945:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "18957:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "18957:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "18968:2:136",
                        "nodeType": "YulLiteral",
                        "src": "18968:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "18953:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "18953:3:136"
                    },
                    "nativeSrc": "18953:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18953:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "18945:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "18945:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "18987:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "18987:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "18998:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "18998:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "18980:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "18980:6:136"
                    },
                    "nativeSrc": "18980:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "18980:25:136"
                  },
                  "nativeSrc": "18980:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "18980:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "19025:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19025:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19036:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19036:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19021:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19021:3:136"
                        },
                        "nativeSrc": "19021:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19021:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "19041:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "19041:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19014:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19014:6:136"
                    },
                    "nativeSrc": "19014:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19014:34:136"
                  },
                  "nativeSrc": "19014:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19014:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "19068:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19068:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19079:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19079:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19064:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19064:3:136"
                        },
                        "nativeSrc": "19064:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19064:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "19084:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "19084:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "19057:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19057:6:136"
                    },
                    "nativeSrc": "19057:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19057:34:136"
                  },
                  "nativeSrc": "19057:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19057:34:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_int256_t_uint256_t_uint256__to_t_int256_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "18780:317:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "18888:9:136",
                "nodeType": "YulTypedName",
                "src": "18888:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "18899:6:136",
                "nodeType": "YulTypedName",
                "src": "18899:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "18907:6:136",
                "nodeType": "YulTypedName",
                "src": "18907:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "18915:6:136",
                "nodeType": "YulTypedName",
                "src": "18915:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "18926:4:136",
                "nodeType": "YulTypedName",
                "src": "18926:4:136",
                "type": ""
              }
            ],
            "src": "18780:317:136"
          },
          {
            "body": {
              "nativeSrc": "19246:412:136",
              "nodeType": "YulBlock",
              "src": "19246:412:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "19293:16:136",
                    "nodeType": "YulBlock",
                    "src": "19293:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19302:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19302:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19305:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19305:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19295:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19295:6:136"
                          },
                          "nativeSrc": "19295:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19295:12:136"
                        },
                        "nativeSrc": "19295:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19295:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "19267:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "19267:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "19276:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19276:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "19263:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19263:3:136"
                        },
                        "nativeSrc": "19263:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19263:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "19288:3:136",
                        "nodeType": "YulLiteral",
                        "src": "19288:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "19259:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "19259:3:136"
                    },
                    "nativeSrc": "19259:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19259:33:136"
                  },
                  "nativeSrc": "19256:53:136",
                  "nodeType": "YulIf",
                  "src": "19256:53:136"
                },
                {
                  "nativeSrc": "19318:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19318:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "19345:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "19345:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19332:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19332:12:136"
                    },
                    "nativeSrc": "19332:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19332:23:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "19322:6:136",
                      "nodeType": "YulTypedName",
                      "src": "19322:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "19398:16:136",
                    "nodeType": "YulBlock",
                    "src": "19398:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19407:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19407:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19410:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19410:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19400:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19400:6:136"
                          },
                          "nativeSrc": "19400:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19400:12:136"
                        },
                        "nativeSrc": "19400:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19400:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "19370:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "19370:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "19378:18:136",
                        "nodeType": "YulLiteral",
                        "src": "19378:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "19367:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "19367:2:136"
                    },
                    "nativeSrc": "19367:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19367:30:136"
                  },
                  "nativeSrc": "19364:50:136",
                  "nodeType": "YulIf",
                  "src": "19364:50:136"
                },
                {
                  "nativeSrc": "19423:84:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19423:84:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "19479:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19479:9:136"
                          },
                          {
                            "name": "offset",
                            "nativeSrc": "19490:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19490:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19475:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19475:3:136"
                        },
                        "nativeSrc": "19475:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19475:22:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "19499:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "19499:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes_calldata",
                      "nativeSrc": "19449:25:136",
                      "nodeType": "YulIdentifier",
                      "src": "19449:25:136"
                    },
                    "nativeSrc": "19449:58:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19449:58:136"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nativeSrc": "19427:8:136",
                      "nodeType": "YulTypedName",
                      "src": "19427:8:136",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nativeSrc": "19437:8:136",
                      "nodeType": "YulTypedName",
                      "src": "19437:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "19516:18:136",
                  "nodeType": "YulAssignment",
                  "src": "19516:18:136",
                  "value": {
                    "name": "value0_1",
                    "nativeSrc": "19526:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "19526:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "19516:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19516:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "19543:18:136",
                  "nodeType": "YulAssignment",
                  "src": "19543:18:136",
                  "value": {
                    "name": "value1_1",
                    "nativeSrc": "19553:8:136",
                    "nodeType": "YulIdentifier",
                    "src": "19553:8:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "19543:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19543:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "19570:82:136",
                  "nodeType": "YulAssignment",
                  "src": "19570:82:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "19628:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19628:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "19639:2:136",
                            "nodeType": "YulLiteral",
                            "src": "19639:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "19624:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19624:3:136"
                        },
                        "nativeSrc": "19624:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19624:18:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "19644:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "19644:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_struct_UpdateConditions_calldata",
                      "nativeSrc": "19580:43:136",
                      "nodeType": "YulIdentifier",
                      "src": "19580:43:136"
                    },
                    "nativeSrc": "19580:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19580:72:136"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nativeSrc": "19570:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19570:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_struct$_UpdateConditions_$28153_calldata_ptr",
            "nativeSrc": "19102:556:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "19196:9:136",
                "nodeType": "YulTypedName",
                "src": "19196:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "19207:7:136",
                "nodeType": "YulTypedName",
                "src": "19207:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "19219:6:136",
                "nodeType": "YulTypedName",
                "src": "19219:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "19227:6:136",
                "nodeType": "YulTypedName",
                "src": "19227:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "19235:6:136",
                "nodeType": "YulTypedName",
                "src": "19235:6:136",
                "type": ""
              }
            ],
            "src": "19102:556:136"
          },
          {
            "body": {
              "nativeSrc": "19787:269:136",
              "nodeType": "YulBlock",
              "src": "19787:269:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "19834:16:136",
                    "nodeType": "YulBlock",
                    "src": "19834:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "19843:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19843:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "19846:1:136",
                              "nodeType": "YulLiteral",
                              "src": "19846:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "19836:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "19836:6:136"
                          },
                          "nativeSrc": "19836:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "19836:12:136"
                        },
                        "nativeSrc": "19836:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "19836:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "19808:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "19808:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "19817:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "19817:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "19804:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "19804:3:136"
                        },
                        "nativeSrc": "19804:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "19804:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "19829:3:136",
                        "nodeType": "YulLiteral",
                        "src": "19829:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "19800:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "19800:3:136"
                    },
                    "nativeSrc": "19800:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19800:33:136"
                  },
                  "nativeSrc": "19797:53:136",
                  "nodeType": "YulIf",
                  "src": "19797:53:136"
                },
                {
                  "nativeSrc": "19859:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "19859:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "19885:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "19885:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "19872:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "19872:12:136"
                    },
                    "nativeSrc": "19872:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19872:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "19863:5:136",
                      "nodeType": "YulTypedName",
                      "src": "19863:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "19929:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "19929:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "19904:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "19904:24:136"
                    },
                    "nativeSrc": "19904:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19904:31:136"
                  },
                  "nativeSrc": "19904:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "19904:31:136"
                },
                {
                  "nativeSrc": "19944:15:136",
                  "nodeType": "YulAssignment",
                  "src": "19944:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "19954:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "19954:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "19944:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19944:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "19968:82:136",
                  "nodeType": "YulAssignment",
                  "src": "19968:82:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "20026:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "20026:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20037:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20037:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "20022:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20022:3:136"
                        },
                        "nativeSrc": "20022:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20022:18:136"
                      },
                      {
                        "name": "dataEnd",
                        "nativeSrc": "20042:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "20042:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_struct_UpdateConditions_calldata",
                      "nativeSrc": "19978:43:136",
                      "nodeType": "YulIdentifier",
                      "src": "19978:43:136"
                    },
                    "nativeSrc": "19978:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "19978:72:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "19968:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "19968:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_struct$_UpdateConditions_$28153_calldata_ptr",
            "nativeSrc": "19663:393:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "19745:9:136",
                "nodeType": "YulTypedName",
                "src": "19745:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "19756:7:136",
                "nodeType": "YulTypedName",
                "src": "19756:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "19768:6:136",
                "nodeType": "YulTypedName",
                "src": "19768:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "19776:6:136",
                "nodeType": "YulTypedName",
                "src": "19776:6:136",
                "type": ""
              }
            ],
            "src": "19663:393:136"
          },
          {
            "body": {
              "nativeSrc": "20093:95:136",
              "nodeType": "YulBlock",
              "src": "20093:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "20110:1:136",
                        "nodeType": "YulLiteral",
                        "src": "20110:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "20117:3:136",
                            "nodeType": "YulLiteral",
                            "src": "20117:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20122:10:136",
                            "nodeType": "YulLiteral",
                            "src": "20122:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "20113:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20113:3:136"
                        },
                        "nativeSrc": "20113:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20113:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20103:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20103:6:136"
                    },
                    "nativeSrc": "20103:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20103:31:136"
                  },
                  "nativeSrc": "20103:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20103:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "20150:1:136",
                        "nodeType": "YulLiteral",
                        "src": "20150:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20153:4:136",
                        "nodeType": "YulLiteral",
                        "src": "20153:4:136",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20143:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20143:6:136"
                    },
                    "nativeSrc": "20143:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20143:15:136"
                  },
                  "nativeSrc": "20143:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20143:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "20174:1:136",
                        "nodeType": "YulLiteral",
                        "src": "20174:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20177:4:136",
                        "nodeType": "YulLiteral",
                        "src": "20177:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "20167:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20167:6:136"
                    },
                    "nativeSrc": "20167:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20167:15:136"
                  },
                  "nativeSrc": "20167:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20167:15:136"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nativeSrc": "20061:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "20061:127:136"
          },
          {
            "body": {
              "nativeSrc": "20248:325:136",
              "nodeType": "YulBlock",
              "src": "20248:325:136",
              "statements": [
                {
                  "nativeSrc": "20258:22:136",
                  "nodeType": "YulAssignment",
                  "src": "20258:22:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "20272:1:136",
                        "nodeType": "YulLiteral",
                        "src": "20272:1:136",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nativeSrc": "20275:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "20275:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nativeSrc": "20268:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20268:3:136"
                    },
                    "nativeSrc": "20268:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20268:12:136"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nativeSrc": "20258:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20258:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "20289:38:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "20289:38:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nativeSrc": "20319:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "20319:4:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20325:1:136",
                        "nodeType": "YulLiteral",
                        "src": "20325:1:136",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "20315:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20315:3:136"
                    },
                    "nativeSrc": "20315:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20315:12:136"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nativeSrc": "20293:18:136",
                      "nodeType": "YulTypedName",
                      "src": "20293:18:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "20366:31:136",
                    "nodeType": "YulBlock",
                    "src": "20366:31:136",
                    "statements": [
                      {
                        "nativeSrc": "20368:27:136",
                        "nodeType": "YulAssignment",
                        "src": "20368:27:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nativeSrc": "20382:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "20382:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "20390:4:136",
                              "nodeType": "YulLiteral",
                              "src": "20390:4:136",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nativeSrc": "20378:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "20378:3:136"
                          },
                          "nativeSrc": "20378:17:136",
                          "nodeType": "YulFunctionCall",
                          "src": "20378:17:136"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nativeSrc": "20368:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20368:6:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nativeSrc": "20346:18:136",
                        "nodeType": "YulIdentifier",
                        "src": "20346:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "20339:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20339:6:136"
                    },
                    "nativeSrc": "20339:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20339:26:136"
                  },
                  "nativeSrc": "20336:61:136",
                  "nodeType": "YulIf",
                  "src": "20336:61:136"
                },
                {
                  "body": {
                    "nativeSrc": "20456:111:136",
                    "nodeType": "YulBlock",
                    "src": "20456:111:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "20477:1:136",
                              "nodeType": "YulLiteral",
                              "src": "20477:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "20484:3:136",
                                  "nodeType": "YulLiteral",
                                  "src": "20484:3:136",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "20489:10:136",
                                  "nodeType": "YulLiteral",
                                  "src": "20489:10:136",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "20480:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "20480:3:136"
                              },
                              "nativeSrc": "20480:20:136",
                              "nodeType": "YulFunctionCall",
                              "src": "20480:20:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "20470:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20470:6:136"
                          },
                          "nativeSrc": "20470:31:136",
                          "nodeType": "YulFunctionCall",
                          "src": "20470:31:136"
                        },
                        "nativeSrc": "20470:31:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "20470:31:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "20521:1:136",
                              "nodeType": "YulLiteral",
                              "src": "20521:1:136",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "20524:4:136",
                              "nodeType": "YulLiteral",
                              "src": "20524:4:136",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "20514:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20514:6:136"
                          },
                          "nativeSrc": "20514:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "20514:15:136"
                        },
                        "nativeSrc": "20514:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "20514:15:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "20549:1:136",
                              "nodeType": "YulLiteral",
                              "src": "20549:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "20552:4:136",
                              "nodeType": "YulLiteral",
                              "src": "20552:4:136",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "20542:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20542:6:136"
                          },
                          "nativeSrc": "20542:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "20542:15:136"
                        },
                        "nativeSrc": "20542:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "20542:15:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nativeSrc": "20412:18:136",
                        "nodeType": "YulIdentifier",
                        "src": "20412:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nativeSrc": "20435:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20435:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "20443:2:136",
                            "nodeType": "YulLiteral",
                            "src": "20443:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "20432:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "20432:2:136"
                        },
                        "nativeSrc": "20432:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20432:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "20409:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "20409:2:136"
                    },
                    "nativeSrc": "20409:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20409:38:136"
                  },
                  "nativeSrc": "20406:161:136",
                  "nodeType": "YulIf",
                  "src": "20406:161:136"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nativeSrc": "20193:380:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nativeSrc": "20228:4:136",
                "nodeType": "YulTypedName",
                "src": "20228:4:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nativeSrc": "20237:6:136",
                "nodeType": "YulTypedName",
                "src": "20237:6:136",
                "type": ""
              }
            ],
            "src": "20193:380:136"
          },
          {
            "body": {
              "nativeSrc": "20711:103:136",
              "nodeType": "YulBlock",
              "src": "20711:103:136",
              "statements": [
                {
                  "nativeSrc": "20721:26:136",
                  "nodeType": "YulAssignment",
                  "src": "20721:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20733:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20733:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "20744:2:136",
                        "nodeType": "YulLiteral",
                        "src": "20744:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "20729:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "20729:3:136"
                    },
                    "nativeSrc": "20729:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20729:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "20721:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "20721:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "20763:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "20763:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "20778:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "20778:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "20790:3:136",
                                "nodeType": "YulLiteral",
                                "src": "20790:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "20795:10:136",
                                "nodeType": "YulLiteral",
                                "src": "20795:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "20786:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "20786:3:136"
                            },
                            "nativeSrc": "20786:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "20786:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "20774:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "20774:3:136"
                        },
                        "nativeSrc": "20774:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "20774:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "20756:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "20756:6:136"
                    },
                    "nativeSrc": "20756:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20756:52:136"
                  },
                  "nativeSrc": "20756:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20756:52:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155__to_t_bytes4__fromStack_library_reversed",
            "nativeSrc": "20578:236:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "20680:9:136",
                "nodeType": "YulTypedName",
                "src": "20680:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "20691:6:136",
                "nodeType": "YulTypedName",
                "src": "20691:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "20702:4:136",
                "nodeType": "YulTypedName",
                "src": "20702:4:136",
                "type": ""
              }
            ],
            "src": "20578:236:136"
          },
          {
            "body": {
              "nativeSrc": "20878:77:136",
              "nodeType": "YulBlock",
              "src": "20878:77:136",
              "statements": [
                {
                  "nativeSrc": "20888:22:136",
                  "nodeType": "YulAssignment",
                  "src": "20888:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "20903:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "20903:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "20897:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "20897:5:136"
                    },
                    "nativeSrc": "20897:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20897:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "20888:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "20888:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "20943:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "20943:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "20919:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "20919:23:136"
                    },
                    "nativeSrc": "20919:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "20919:30:136"
                  },
                  "nativeSrc": "20919:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "20919:30:136"
                }
              ]
            },
            "name": "abi_decode_uint64_fromMemory",
            "nativeSrc": "20819:136:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "20857:6:136",
                "nodeType": "YulTypedName",
                "src": "20857:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "20868:5:136",
                "nodeType": "YulTypedName",
                "src": "20868:5:136",
                "type": ""
              }
            ],
            "src": "20819:136:136"
          },
          {
            "body": {
              "nativeSrc": "21018:106:136",
              "nodeType": "YulBlock",
              "src": "21018:106:136",
              "statements": [
                {
                  "nativeSrc": "21028:22:136",
                  "nodeType": "YulAssignment",
                  "src": "21028:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "21043:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21043:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21037:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21037:5:136"
                    },
                    "nativeSrc": "21037:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21037:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "21028:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21028:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "21102:16:136",
                    "nodeType": "YulBlock",
                    "src": "21102:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21111:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21111:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21114:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21114:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21104:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21104:6:136"
                          },
                          "nativeSrc": "21104:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21104:12:136"
                        },
                        "nativeSrc": "21104:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21104:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "21072:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "21072:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "21090:1:136",
                                "nodeType": "YulLiteral",
                                "src": "21090:1:136",
                                "type": "",
                                "value": "6"
                              },
                              {
                                "name": "value",
                                "nativeSrc": "21093:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "21093:5:136"
                              }
                            ],
                            "functionName": {
                              "name": "signextend",
                              "nativeSrc": "21079:10:136",
                              "nodeType": "YulIdentifier",
                              "src": "21079:10:136"
                            },
                            "nativeSrc": "21079:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "21079:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "21069:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "21069:2:136"
                        },
                        "nativeSrc": "21069:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21069:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "21062:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21062:6:136"
                    },
                    "nativeSrc": "21062:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21062:39:136"
                  },
                  "nativeSrc": "21059:59:136",
                  "nodeType": "YulIf",
                  "src": "21059:59:136"
                }
              ]
            },
            "name": "abi_decode_int56_fromMemory",
            "nativeSrc": "20960:164:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "20997:6:136",
                "nodeType": "YulTypedName",
                "src": "20997:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "21008:5:136",
                "nodeType": "YulTypedName",
                "src": "21008:5:136",
                "type": ""
              }
            ],
            "src": "20960:164:136"
          },
          {
            "body": {
              "nativeSrc": "21234:895:136",
              "nodeType": "YulBlock",
              "src": "21234:895:136",
              "statements": [
                {
                  "nativeSrc": "21244:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21244:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "21262:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "21262:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "21271:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "21271:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "21258:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21258:3:136"
                        },
                        "nativeSrc": "21258:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21258:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "21283:3:136",
                        "nodeType": "YulLiteral",
                        "src": "21283:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "21254:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "21254:3:136"
                    },
                    "nativeSrc": "21254:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21254:33:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "21248:2:136",
                      "nodeType": "YulTypedName",
                      "src": "21248:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "21302:16:136",
                    "nodeType": "YulBlock",
                    "src": "21302:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "21311:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21311:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "21314:1:136",
                              "nodeType": "YulLiteral",
                              "src": "21314:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "21304:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21304:6:136"
                          },
                          "nativeSrc": "21304:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21304:12:136"
                        },
                        "nativeSrc": "21304:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21304:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "name": "_1",
                    "nativeSrc": "21299:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "21299:2:136"
                  },
                  "nativeSrc": "21296:22:136",
                  "nodeType": "YulIf",
                  "src": "21296:22:136"
                },
                {
                  "nativeSrc": "21327:7:136",
                  "nodeType": "YulAssignment",
                  "src": "21327:7:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "21333:1:136",
                    "nodeType": "YulLiteral",
                    "src": "21333:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variableNames": [
                    {
                      "name": "_1",
                      "nativeSrc": "21327:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "21327:2:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "21343:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21343:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "21363:2:136",
                        "nodeType": "YulLiteral",
                        "src": "21363:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21357:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21357:5:136"
                    },
                    "nativeSrc": "21357:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21357:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "21347:6:136",
                      "nodeType": "YulTypedName",
                      "src": "21347:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "21375:34:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21375:34:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "21397:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21397:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "21405:3:136",
                        "nodeType": "YulLiteral",
                        "src": "21405:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "21393:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "21393:3:136"
                    },
                    "nativeSrc": "21393:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21393:16:136"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nativeSrc": "21379:10:136",
                      "nodeType": "YulTypedName",
                      "src": "21379:10:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "21484:22:136",
                    "nodeType": "YulBlock",
                    "src": "21484:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nativeSrc": "21486:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "21486:16:136"
                          },
                          "nativeSrc": "21486:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "21486:18:136"
                        },
                        "nativeSrc": "21486:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "21486:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "21427:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "21427:10:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21439:18:136",
                            "nodeType": "YulLiteral",
                            "src": "21439:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "21424:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "21424:2:136"
                        },
                        "nativeSrc": "21424:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21424:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nativeSrc": "21463:10:136",
                            "nodeType": "YulIdentifier",
                            "src": "21463:10:136"
                          },
                          {
                            "name": "memPtr",
                            "nativeSrc": "21475:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21475:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "21460:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "21460:2:136"
                        },
                        "nativeSrc": "21460:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21460:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "21421:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "21421:2:136"
                    },
                    "nativeSrc": "21421:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21421:62:136"
                  },
                  "nativeSrc": "21418:88:136",
                  "nodeType": "YulIf",
                  "src": "21418:88:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "21522:2:136",
                        "nodeType": "YulLiteral",
                        "src": "21522:2:136",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nativeSrc": "21526:10:136",
                        "nodeType": "YulIdentifier",
                        "src": "21526:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21515:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21515:6:136"
                    },
                    "nativeSrc": "21515:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21515:22:136"
                  },
                  "nativeSrc": "21515:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21515:22:136"
                },
                {
                  "nativeSrc": "21546:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21546:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "21565:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "21565:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21559:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21559:5:136"
                    },
                    "nativeSrc": "21559:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21559:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "21550:5:136",
                      "nodeType": "YulTypedName",
                      "src": "21550:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "21606:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "21606:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "21584:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "21584:21:136"
                    },
                    "nativeSrc": "21584:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21584:28:136"
                  },
                  "nativeSrc": "21584:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21584:28:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "21628:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "21628:6:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "21636:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "21636:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21621:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21621:6:136"
                    },
                    "nativeSrc": "21621:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21621:21:136"
                  },
                  "nativeSrc": "21621:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21621:21:136"
                },
                {
                  "nativeSrc": "21651:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21651:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "21676:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "21676:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21687:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21687:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21672:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21672:3:136"
                        },
                        "nativeSrc": "21672:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21672:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21666:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21666:5:136"
                    },
                    "nativeSrc": "21666:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21666:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "21655:7:136",
                      "nodeType": "YulTypedName",
                      "src": "21655:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "21724:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "21724:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "21700:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "21700:23:136"
                    },
                    "nativeSrc": "21700:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21700:32:136"
                  },
                  "nativeSrc": "21700:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21700:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "21752:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21752:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21760:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21760:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21748:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21748:3:136"
                        },
                        "nativeSrc": "21748:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21748:15:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "21765:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "21765:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21741:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21741:6:136"
                    },
                    "nativeSrc": "21741:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21741:32:136"
                  },
                  "nativeSrc": "21741:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21741:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "21793:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21793:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21801:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21801:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21789:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21789:3:136"
                        },
                        "nativeSrc": "21789:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21789:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "21838:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "21838:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "21849:2:136",
                                "nodeType": "YulLiteral",
                                "src": "21849:2:136",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "21834:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "21834:3:136"
                            },
                            "nativeSrc": "21834:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "21834:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_int56_fromMemory",
                          "nativeSrc": "21806:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "21806:27:136"
                        },
                        "nativeSrc": "21806:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21806:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21782:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21782:6:136"
                    },
                    "nativeSrc": "21782:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21782:72:136"
                  },
                  "nativeSrc": "21782:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21782:72:136"
                },
                {
                  "nativeSrc": "21863:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21863:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "21888:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "21888:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21899:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21899:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21884:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21884:3:136"
                        },
                        "nativeSrc": "21884:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21884:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "21878:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "21878:5:136"
                    },
                    "nativeSrc": "21878:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21878:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "21867:7:136",
                      "nodeType": "YulTypedName",
                      "src": "21867:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "21936:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "21936:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "21912:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "21912:23:136"
                    },
                    "nativeSrc": "21912:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21912:32:136"
                  },
                  "nativeSrc": "21912:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21912:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "21964:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "21964:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "21972:2:136",
                            "nodeType": "YulLiteral",
                            "src": "21972:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "21960:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "21960:3:136"
                        },
                        "nativeSrc": "21960:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "21960:15:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "21977:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "21977:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "21953:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "21953:6:136"
                    },
                    "nativeSrc": "21953:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "21953:32:136"
                  },
                  "nativeSrc": "21953:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "21953:32:136"
                },
                {
                  "nativeSrc": "21994:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "21994:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "22009:1:136",
                    "nodeType": "YulLiteral",
                    "src": "22009:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "21998:7:136",
                      "nodeType": "YulTypedName",
                      "src": "21998:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "22019:37:136",
                  "nodeType": "YulAssignment",
                  "src": "22019:37:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22040:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22040:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22051:3:136",
                            "nodeType": "YulLiteral",
                            "src": "22051:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22036:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22036:3:136"
                        },
                        "nativeSrc": "22036:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22036:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "22030:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "22030:5:136"
                    },
                    "nativeSrc": "22030:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22030:26:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_3",
                      "nativeSrc": "22019:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "22019:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "22076:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22076:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22084:3:136",
                            "nodeType": "YulLiteral",
                            "src": "22084:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22072:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22072:3:136"
                        },
                        "nativeSrc": "22072:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22072:16:136"
                      },
                      {
                        "name": "value_3",
                        "nativeSrc": "22090:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "22090:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22065:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22065:6:136"
                    },
                    "nativeSrc": "22065:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22065:33:136"
                  },
                  "nativeSrc": "22065:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22065:33:136"
                },
                {
                  "nativeSrc": "22107:16:136",
                  "nodeType": "YulAssignment",
                  "src": "22107:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "22117:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "22117:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "22107:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22107:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_Price_$28105_memory_ptr_fromMemory",
            "nativeSrc": "21129:1000:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "21200:9:136",
                "nodeType": "YulTypedName",
                "src": "21200:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "21211:7:136",
                "nodeType": "YulTypedName",
                "src": "21211:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "21223:6:136",
                "nodeType": "YulTypedName",
                "src": "21223:6:136",
                "type": ""
              }
            ],
            "src": "21129:1000:136"
          },
          {
            "body": {
              "nativeSrc": "22293:161:136",
              "nodeType": "YulBlock",
              "src": "22293:161:136",
              "statements": [
                {
                  "nativeSrc": "22303:26:136",
                  "nodeType": "YulAssignment",
                  "src": "22303:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22315:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22315:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22326:2:136",
                        "nodeType": "YulLiteral",
                        "src": "22326:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "22311:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22311:3:136"
                    },
                    "nativeSrc": "22311:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22311:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "22303:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "22303:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22345:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22345:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "22360:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22360:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "22372:3:136",
                                "nodeType": "YulLiteral",
                                "src": "22372:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "22377:10:136",
                                "nodeType": "YulLiteral",
                                "src": "22377:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "22368:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "22368:3:136"
                            },
                            "nativeSrc": "22368:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "22368:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "22356:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22356:3:136"
                        },
                        "nativeSrc": "22356:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22356:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22338:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22338:6:136"
                    },
                    "nativeSrc": "22338:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22338:52:136"
                  },
                  "nativeSrc": "22338:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22338:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22410:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22410:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22421:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22421:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22406:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22406:3:136"
                        },
                        "nativeSrc": "22406:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22406:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "22430:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22430:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22438:8:136",
                            "nodeType": "YulLiteral",
                            "src": "22438:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "22426:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22426:3:136"
                        },
                        "nativeSrc": "22426:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22426:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22399:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22399:6:136"
                    },
                    "nativeSrc": "22399:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22399:49:136"
                  },
                  "nativeSrc": "22399:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22399:49:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_uint24__to_t_bytes4_t_uint24__fromStack_library_reversed",
            "nativeSrc": "22134:320:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "22254:9:136",
                "nodeType": "YulTypedName",
                "src": "22254:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "22265:6:136",
                "nodeType": "YulTypedName",
                "src": "22265:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "22273:6:136",
                "nodeType": "YulTypedName",
                "src": "22273:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "22284:4:136",
                "nodeType": "YulTypedName",
                "src": "22284:4:136",
                "type": ""
              }
            ],
            "src": "22134:320:136"
          },
          {
            "body": {
              "nativeSrc": "22614:162:136",
              "nodeType": "YulBlock",
              "src": "22614:162:136",
              "statements": [
                {
                  "nativeSrc": "22624:26:136",
                  "nodeType": "YulAssignment",
                  "src": "22624:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22636:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22636:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22647:2:136",
                        "nodeType": "YulLiteral",
                        "src": "22647:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "22632:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22632:3:136"
                    },
                    "nativeSrc": "22632:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22632:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "22624:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "22624:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "22666:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "22666:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "22681:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "22681:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "22693:3:136",
                                "nodeType": "YulLiteral",
                                "src": "22693:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "22698:10:136",
                                "nodeType": "YulLiteral",
                                "src": "22698:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "22689:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "22689:3:136"
                            },
                            "nativeSrc": "22689:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "22689:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "22677:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22677:3:136"
                        },
                        "nativeSrc": "22677:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22677:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22659:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22659:6:136"
                    },
                    "nativeSrc": "22659:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22659:52:136"
                  },
                  "nativeSrc": "22659:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22659:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "22731:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "22731:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22742:2:136",
                            "nodeType": "YulLiteral",
                            "src": "22742:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22727:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22727:3:136"
                        },
                        "nativeSrc": "22727:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22727:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value1",
                                "nativeSrc": "22761:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "22761:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "22754:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "22754:6:136"
                            },
                            "nativeSrc": "22754:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "22754:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "22747:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "22747:6:136"
                        },
                        "nativeSrc": "22747:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22747:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22720:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22720:6:136"
                    },
                    "nativeSrc": "22720:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22720:50:136"
                  },
                  "nativeSrc": "22720:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22720:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_bool__to_t_bytes4_t_bool__fromStack_library_reversed",
            "nativeSrc": "22459:317:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "22575:9:136",
                "nodeType": "YulTypedName",
                "src": "22575:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "22586:6:136",
                "nodeType": "YulTypedName",
                "src": "22586:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "22594:6:136",
                "nodeType": "YulTypedName",
                "src": "22594:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "22605:4:136",
                "nodeType": "YulTypedName",
                "src": "22605:4:136",
                "type": ""
              }
            ],
            "src": "22459:317:136"
          },
          {
            "body": {
              "nativeSrc": "22848:200:136",
              "nodeType": "YulBlock",
              "src": "22848:200:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "22865:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "22865:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "22870:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "22870:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22858:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22858:6:136"
                    },
                    "nativeSrc": "22858:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22858:19:136"
                  },
                  "nativeSrc": "22858:19:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22858:19:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "22903:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "22903:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22908:4:136",
                            "nodeType": "YulLiteral",
                            "src": "22908:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22899:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22899:3:136"
                        },
                        "nativeSrc": "22899:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22899:14:136"
                      },
                      {
                        "name": "start",
                        "nativeSrc": "22915:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "22915:5:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "22922:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "22922:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nativeSrc": "22886:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "22886:12:136"
                    },
                    "nativeSrc": "22886:43:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22886:43:136"
                  },
                  "nativeSrc": "22886:43:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22886:43:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "pos",
                                "nativeSrc": "22953:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "22953:3:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "22958:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "22958:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "22949:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "22949:3:136"
                            },
                            "nativeSrc": "22949:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "22949:16:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "22967:4:136",
                            "nodeType": "YulLiteral",
                            "src": "22967:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22945:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22945:3:136"
                        },
                        "nativeSrc": "22945:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22945:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "22974:1:136",
                        "nodeType": "YulLiteral",
                        "src": "22974:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "22938:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "22938:6:136"
                    },
                    "nativeSrc": "22938:38:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22938:38:136"
                  },
                  "nativeSrc": "22938:38:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "22938:38:136"
                },
                {
                  "nativeSrc": "22985:57:136",
                  "nodeType": "YulAssignment",
                  "src": "22985:57:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "23000:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "23000:3:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nativeSrc": "23013:6:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "23013:6:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "23021:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "23021:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nativeSrc": "23009:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "23009:3:136"
                                },
                                "nativeSrc": "23009:15:136",
                                "nodeType": "YulFunctionCall",
                                "src": "23009:15:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "23030:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "23030:2:136",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "23026:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "23026:3:136"
                                },
                                "nativeSrc": "23026:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "23026:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "23005:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "23005:3:136"
                            },
                            "nativeSrc": "23005:29:136",
                            "nodeType": "YulFunctionCall",
                            "src": "23005:29:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "22996:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "22996:3:136"
                        },
                        "nativeSrc": "22996:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "22996:39:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23037:4:136",
                        "nodeType": "YulLiteral",
                        "src": "23037:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "22992:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22992:3:136"
                    },
                    "nativeSrc": "22992:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "22992:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "22985:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "22985:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string_calldata",
            "nativeSrc": "22781:267:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nativeSrc": "22817:5:136",
                "nodeType": "YulTypedName",
                "src": "22817:5:136",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "22824:6:136",
                "nodeType": "YulTypedName",
                "src": "22824:6:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "22832:3:136",
                "nodeType": "YulTypedName",
                "src": "22832:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "22840:3:136",
                "nodeType": "YulTypedName",
                "src": "22840:3:136",
                "type": ""
              }
            ],
            "src": "22781:267:136"
          },
          {
            "body": {
              "nativeSrc": "23236:186:136",
              "nodeType": "YulBlock",
              "src": "23236:186:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "23253:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "23253:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "23268:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "23268:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "23280:3:136",
                                "nodeType": "YulLiteral",
                                "src": "23280:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "23285:10:136",
                                "nodeType": "YulLiteral",
                                "src": "23285:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "23276:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "23276:3:136"
                            },
                            "nativeSrc": "23276:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "23276:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "23264:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23264:3:136"
                        },
                        "nativeSrc": "23264:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23264:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23246:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23246:6:136"
                    },
                    "nativeSrc": "23246:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23246:52:136"
                  },
                  "nativeSrc": "23246:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23246:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23318:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23318:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23329:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23329:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23314:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23314:3:136"
                        },
                        "nativeSrc": "23314:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23314:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23334:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23334:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "23307:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23307:6:136"
                    },
                    "nativeSrc": "23307:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23307:30:136"
                  },
                  "nativeSrc": "23307:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23307:30:136"
                },
                {
                  "nativeSrc": "23346:70:136",
                  "nodeType": "YulAssignment",
                  "src": "23346:70:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "23381:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "23381:6:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "23389:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "23389:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "23401:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23401:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "23412:2:136",
                            "nodeType": "YulLiteral",
                            "src": "23412:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "23397:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23397:3:136"
                        },
                        "nativeSrc": "23397:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23397:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "23354:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "23354:26:136"
                    },
                    "nativeSrc": "23354:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23354:62:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "23346:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "23346:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr__to_t_bytes4_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "23053:369:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "23189:9:136",
                "nodeType": "YulTypedName",
                "src": "23189:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "23200:6:136",
                "nodeType": "YulTypedName",
                "src": "23200:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "23208:6:136",
                "nodeType": "YulTypedName",
                "src": "23208:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "23216:6:136",
                "nodeType": "YulTypedName",
                "src": "23216:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "23227:4:136",
                "nodeType": "YulTypedName",
                "src": "23227:4:136",
                "type": ""
              }
            ],
            "src": "23053:369:136"
          },
          {
            "body": {
              "nativeSrc": "23507:187:136",
              "nodeType": "YulBlock",
              "src": "23507:187:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "23553:16:136",
                    "nodeType": "YulBlock",
                    "src": "23553:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "23562:1:136",
                              "nodeType": "YulLiteral",
                              "src": "23562:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "23565:1:136",
                              "nodeType": "YulLiteral",
                              "src": "23565:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "23555:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "23555:6:136"
                          },
                          "nativeSrc": "23555:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "23555:12:136"
                        },
                        "nativeSrc": "23555:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "23555:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "23528:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "23528:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "23537:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "23537:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "23524:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23524:3:136"
                        },
                        "nativeSrc": "23524:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23524:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "23549:2:136",
                        "nodeType": "YulLiteral",
                        "src": "23549:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "23520:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23520:3:136"
                    },
                    "nativeSrc": "23520:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23520:32:136"
                  },
                  "nativeSrc": "23517:52:136",
                  "nodeType": "YulIf",
                  "src": "23517:52:136"
                },
                {
                  "nativeSrc": "23578:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "23578:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "23597:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "23597:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "23591:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "23591:5:136"
                    },
                    "nativeSrc": "23591:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23591:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "23582:5:136",
                      "nodeType": "YulTypedName",
                      "src": "23582:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "23658:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "23658:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_userDefinedValueType_ID4",
                      "nativeSrc": "23616:41:136",
                      "nodeType": "YulIdentifier",
                      "src": "23616:41:136"
                    },
                    "nativeSrc": "23616:48:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23616:48:136"
                  },
                  "nativeSrc": "23616:48:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "23616:48:136"
                },
                {
                  "nativeSrc": "23673:15:136",
                  "nodeType": "YulAssignment",
                  "src": "23673:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "23683:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "23683:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "23673:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23673:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nativeSrc": "23427:267:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "23473:9:136",
                "nodeType": "YulTypedName",
                "src": "23473:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "23484:7:136",
                "nodeType": "YulTypedName",
                "src": "23484:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "23496:6:136",
                "nodeType": "YulTypedName",
                "src": "23496:6:136",
                "type": ""
              }
            ],
            "src": "23427:267:136"
          },
          {
            "body": {
              "nativeSrc": "23776:424:136",
              "nodeType": "YulBlock",
              "src": "23776:424:136",
              "statements": [
                {
                  "nativeSrc": "23786:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "23786:43:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr",
                        "nativeSrc": "23825:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "23825:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "23812:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "23812:12:136"
                    },
                    "nativeSrc": "23812:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23812:17:136"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nativeSrc": "23790:18:136",
                      "nodeType": "YulTypedName",
                      "src": "23790:18:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "23918:16:136",
                    "nodeType": "YulBlock",
                    "src": "23918:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "23927:1:136",
                              "nodeType": "YulLiteral",
                              "src": "23927:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "23930:1:136",
                              "nodeType": "YulLiteral",
                              "src": "23930:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "23920:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "23920:6:136"
                          },
                          "nativeSrc": "23920:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "23920:12:136"
                        },
                        "nativeSrc": "23920:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "23920:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nativeSrc": "23852:18:136",
                            "nodeType": "YulIdentifier",
                            "src": "23852:18:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nativeSrc": "23880:12:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "23880:12:136"
                                    },
                                    "nativeSrc": "23880:14:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "23880:14:136"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nativeSrc": "23896:8:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "23896:8:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nativeSrc": "23876:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "23876:3:136"
                                },
                                "nativeSrc": "23876:29:136",
                                "nodeType": "YulFunctionCall",
                                "src": "23876:29:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "23911:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "23911:2:136",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "23907:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "23907:3:136"
                                },
                                "nativeSrc": "23907:7:136",
                                "nodeType": "YulFunctionCall",
                                "src": "23907:7:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "23872:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "23872:3:136"
                            },
                            "nativeSrc": "23872:43:136",
                            "nodeType": "YulFunctionCall",
                            "src": "23872:43:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "23848:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "23848:3:136"
                        },
                        "nativeSrc": "23848:68:136",
                        "nodeType": "YulFunctionCall",
                        "src": "23848:68:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "23841:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "23841:6:136"
                    },
                    "nativeSrc": "23841:76:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23841:76:136"
                  },
                  "nativeSrc": "23838:96:136",
                  "nodeType": "YulIf",
                  "src": "23838:96:136"
                },
                {
                  "nativeSrc": "23943:48:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "23943:48:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "rel_offset_of_tail",
                        "nativeSrc": "23962:18:136",
                        "nodeType": "YulIdentifier",
                        "src": "23962:18:136"
                      },
                      {
                        "name": "base_ref",
                        "nativeSrc": "23982:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "23982:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "23958:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "23958:3:136"
                    },
                    "nativeSrc": "23958:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "23958:33:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "23947:7:136",
                      "nodeType": "YulTypedName",
                      "src": "23947:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "24000:31:136",
                  "nodeType": "YulAssignment",
                  "src": "24000:31:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "24023:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "24023:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "24010:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "24010:12:136"
                    },
                    "nativeSrc": "24010:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24010:21:136"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nativeSrc": "24000:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24000:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "24040:27:136",
                  "nodeType": "YulAssignment",
                  "src": "24040:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "24053:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "24053:7:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24062:4:136",
                        "nodeType": "YulLiteral",
                        "src": "24062:4:136",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24049:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24049:3:136"
                    },
                    "nativeSrc": "24049:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24049:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "24040:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "24040:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "24110:16:136",
                    "nodeType": "YulBlock",
                    "src": "24110:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "24119:1:136",
                              "nodeType": "YulLiteral",
                              "src": "24119:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "24122:1:136",
                              "nodeType": "YulLiteral",
                              "src": "24122:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "24112:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24112:6:136"
                          },
                          "nativeSrc": "24112:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "24112:12:136"
                        },
                        "nativeSrc": "24112:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "24112:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "24082:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24082:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24090:18:136",
                        "nodeType": "YulLiteral",
                        "src": "24090:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "24079:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "24079:2:136"
                    },
                    "nativeSrc": "24079:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24079:30:136"
                  },
                  "nativeSrc": "24076:50:136",
                  "nodeType": "YulIf",
                  "src": "24076:50:136"
                },
                {
                  "body": {
                    "nativeSrc": "24178:16:136",
                    "nodeType": "YulBlock",
                    "src": "24178:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "24187:1:136",
                              "nodeType": "YulLiteral",
                              "src": "24187:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "24190:1:136",
                              "nodeType": "YulLiteral",
                              "src": "24190:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "24180:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24180:6:136"
                          },
                          "nativeSrc": "24180:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "24180:12:136"
                        },
                        "nativeSrc": "24180:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "24180:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "24142:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "24142:5:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nativeSrc": "24153:12:136",
                              "nodeType": "YulIdentifier",
                              "src": "24153:12:136"
                            },
                            "nativeSrc": "24153:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "24153:14:136"
                          },
                          {
                            "name": "length",
                            "nativeSrc": "24169:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24169:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "24149:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24149:3:136"
                        },
                        "nativeSrc": "24149:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24149:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nativeSrc": "24138:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24138:3:136"
                    },
                    "nativeSrc": "24138:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24138:39:136"
                  },
                  "nativeSrc": "24135:59:136",
                  "nodeType": "YulIf",
                  "src": "24135:59:136"
                }
              ]
            },
            "name": "calldata_access_string_calldata",
            "nativeSrc": "23699:501:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nativeSrc": "23740:8:136",
                "nodeType": "YulTypedName",
                "src": "23740:8:136",
                "type": ""
              },
              {
                "name": "ptr",
                "nativeSrc": "23750:3:136",
                "nodeType": "YulTypedName",
                "src": "23750:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "23758:5:136",
                "nodeType": "YulTypedName",
                "src": "23758:5:136",
                "type": ""
              },
              {
                "name": "length",
                "nativeSrc": "23765:6:136",
                "nodeType": "YulTypedName",
                "src": "23765:6:136",
                "type": ""
              }
            ],
            "src": "23699:501:136"
          },
          {
            "body": {
              "nativeSrc": "24515:900:136",
              "nodeType": "YulBlock",
              "src": "24515:900:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "24532:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "24532:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24543:3:136",
                        "nodeType": "YulLiteral",
                        "src": "24543:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24525:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24525:6:136"
                    },
                    "nativeSrc": "24525:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24525:22:136"
                  },
                  "nativeSrc": "24525:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24525:22:136"
                },
                {
                  "nativeSrc": "24556:77:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "24556:77:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "24597:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24597:6:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "24605:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24605:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "24617:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24617:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24628:3:136",
                            "nodeType": "YulLiteral",
                            "src": "24628:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24613:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24613:3:136"
                        },
                        "nativeSrc": "24613:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24613:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "24570:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "24570:26:136"
                    },
                    "nativeSrc": "24570:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24570:63:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "24560:6:136",
                      "nodeType": "YulTypedName",
                      "src": "24560:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "24653:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24653:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24664:2:136",
                            "nodeType": "YulLiteral",
                            "src": "24664:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24649:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24649:3:136"
                        },
                        "nativeSrc": "24649:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24649:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "24680:1:136",
                            "nodeType": "YulLiteral",
                            "src": "24680:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value2",
                            "nativeSrc": "24683:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24683:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "24669:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "24669:10:136"
                        },
                        "nativeSrc": "24669:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24669:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24642:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24642:6:136"
                    },
                    "nativeSrc": "24642:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24642:49:136"
                  },
                  "nativeSrc": "24642:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24642:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nativeSrc": "24724:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24724:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "24736:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24736:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24747:2:136",
                            "nodeType": "YulLiteral",
                            "src": "24747:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24732:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24732:3:136"
                        },
                        "nativeSrc": "24732:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24732:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Mappers",
                      "nativeSrc": "24700:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "24700:23:136"
                    },
                    "nativeSrc": "24700:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24700:51:136"
                  },
                  "nativeSrc": "24700:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24700:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "24771:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24771:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "24782:2:136",
                            "nodeType": "YulLiteral",
                            "src": "24782:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24767:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24767:3:136"
                        },
                        "nativeSrc": "24767:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24767:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "24791:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24791:6:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "24799:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "24799:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "24787:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24787:3:136"
                        },
                        "nativeSrc": "24787:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24787:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24760:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24760:6:136"
                    },
                    "nativeSrc": "24760:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24760:50:136"
                  },
                  "nativeSrc": "24760:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24760:50:136"
                },
                {
                  "nativeSrc": "24819:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "24819:17:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "24830:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "24830:6:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "24823:3:136",
                      "nodeType": "YulTypedName",
                      "src": "24823:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "24852:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24852:6:136"
                      },
                      {
                        "name": "value5",
                        "nativeSrc": "24860:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24860:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "24845:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "24845:6:136"
                    },
                    "nativeSrc": "24845:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24845:22:136"
                  },
                  "nativeSrc": "24845:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "24845:22:136"
                },
                {
                  "nativeSrc": "24876:22:136",
                  "nodeType": "YulAssignment",
                  "src": "24876:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "24887:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "24887:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24895:2:136",
                        "nodeType": "YulLiteral",
                        "src": "24895:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24883:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24883:3:136"
                    },
                    "nativeSrc": "24883:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24883:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "24876:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24876:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "24907:50:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "24907:50:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "24929:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "24929:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "24941:1:136",
                                "nodeType": "YulLiteral",
                                "src": "24941:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "value5",
                                "nativeSrc": "24944:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "24944:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "24937:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "24937:3:136"
                            },
                            "nativeSrc": "24937:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "24937:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "24925:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "24925:3:136"
                        },
                        "nativeSrc": "24925:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "24925:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "24954:2:136",
                        "nodeType": "YulLiteral",
                        "src": "24954:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "24921:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "24921:3:136"
                    },
                    "nativeSrc": "24921:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "24921:36:136"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "24911:6:136",
                      "nodeType": "YulTypedName",
                      "src": "24911:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "24966:20:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "24966:20:136",
                  "value": {
                    "name": "value4",
                    "nativeSrc": "24980:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "24980:6:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "24970:6:136",
                      "nodeType": "YulTypedName",
                      "src": "24970:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "24995:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "24995:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "25004:1:136",
                    "nodeType": "YulLiteral",
                    "src": "25004:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "24999:1:136",
                      "nodeType": "YulTypedName",
                      "src": "24999:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "25063:323:136",
                    "nodeType": "YulBlock",
                    "src": "25063:323:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "25084:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "25084:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "25097:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "25097:6:136"
                                    },
                                    {
                                      "name": "tail_1",
                                      "nativeSrc": "25105:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "25105:6:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "25093:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "25093:3:136"
                                  },
                                  "nativeSrc": "25093:19:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "25093:19:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "25118:2:136",
                                      "nodeType": "YulLiteral",
                                      "src": "25118:2:136",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "25114:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "25114:3:136"
                                  },
                                  "nativeSrc": "25114:7:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "25114:7:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "25089:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "25089:3:136"
                              },
                              "nativeSrc": "25089:33:136",
                              "nodeType": "YulFunctionCall",
                              "src": "25089:33:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "25077:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "25077:6:136"
                          },
                          "nativeSrc": "25077:46:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25077:46:136"
                        },
                        "nativeSrc": "25077:46:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "25077:46:136"
                      },
                      {
                        "nativeSrc": "25136:83:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "25136:83:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "value4",
                              "nativeSrc": "25204:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "25204:6:136"
                            },
                            {
                              "name": "srcPtr",
                              "nativeSrc": "25212:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "25212:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "calldata_access_string_calldata",
                            "nativeSrc": "25172:31:136",
                            "nodeType": "YulIdentifier",
                            "src": "25172:31:136"
                          },
                          "nativeSrc": "25172:47:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25172:47:136"
                        },
                        "variables": [
                          {
                            "name": "elementValue0",
                            "nativeSrc": "25140:13:136",
                            "nodeType": "YulTypedName",
                            "src": "25140:13:136",
                            "type": ""
                          },
                          {
                            "name": "elementValue1",
                            "nativeSrc": "25155:13:136",
                            "nodeType": "YulTypedName",
                            "src": "25155:13:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "25232:74:136",
                        "nodeType": "YulAssignment",
                        "src": "25232:74:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "elementValue0",
                              "nativeSrc": "25269:13:136",
                              "nodeType": "YulIdentifier",
                              "src": "25269:13:136"
                            },
                            {
                              "name": "elementValue1",
                              "nativeSrc": "25284:13:136",
                              "nodeType": "YulIdentifier",
                              "src": "25284:13:136"
                            },
                            {
                              "name": "tail_2",
                              "nativeSrc": "25299:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "25299:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_calldata",
                            "nativeSrc": "25242:26:136",
                            "nodeType": "YulIdentifier",
                            "src": "25242:26:136"
                          },
                          "nativeSrc": "25242:64:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25242:64:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "25232:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "25232:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "25319:25:136",
                        "nodeType": "YulAssignment",
                        "src": "25319:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "25333:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "25333:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "25341:2:136",
                              "nodeType": "YulLiteral",
                              "src": "25341:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "25329:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25329:3:136"
                          },
                          "nativeSrc": "25329:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25329:15:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "25319:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "25319:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "25357:19:136",
                        "nodeType": "YulAssignment",
                        "src": "25357:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "25368:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "25368:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "25373:2:136",
                              "nodeType": "YulLiteral",
                              "src": "25373:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "25364:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25364:3:136"
                          },
                          "nativeSrc": "25364:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25364:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "25357:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25357:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "25025:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "25025:1:136"
                      },
                      {
                        "name": "value5",
                        "nativeSrc": "25028:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "25028:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "25022:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "25022:2:136"
                    },
                    "nativeSrc": "25022:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25022:13:136"
                  },
                  "nativeSrc": "25014:372:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "25036:18:136",
                    "nodeType": "YulBlock",
                    "src": "25036:18:136",
                    "statements": [
                      {
                        "nativeSrc": "25038:14:136",
                        "nodeType": "YulAssignment",
                        "src": "25038:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "25047:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "25047:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "25050:1:136",
                              "nodeType": "YulLiteral",
                              "src": "25050:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "25043:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25043:3:136"
                          },
                          "nativeSrc": "25043:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25043:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "25038:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "25038:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "25018:3:136",
                    "nodeType": "YulBlock",
                    "src": "25018:3:136",
                    "statements": []
                  },
                  "src": "25014:372:136"
                },
                {
                  "nativeSrc": "25395:14:136",
                  "nodeType": "YulAssignment",
                  "src": "25395:14:136",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "25403:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "25403:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "25395:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "25395:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_calldata_ptr_t_int8_t_enum$_Mappers_$28087_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_string_memory_ptr_t_int8_t_uint8_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_library_reversed",
            "nativeSrc": "24205:1210:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "24444:9:136",
                "nodeType": "YulTypedName",
                "src": "24444:9:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "24455:6:136",
                "nodeType": "YulTypedName",
                "src": "24455:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "24463:6:136",
                "nodeType": "YulTypedName",
                "src": "24463:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "24471:6:136",
                "nodeType": "YulTypedName",
                "src": "24471:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "24479:6:136",
                "nodeType": "YulTypedName",
                "src": "24479:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "24487:6:136",
                "nodeType": "YulTypedName",
                "src": "24487:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "24495:6:136",
                "nodeType": "YulTypedName",
                "src": "24495:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "24506:4:136",
                "nodeType": "YulTypedName",
                "src": "24506:4:136",
                "type": ""
              }
            ],
            "src": "24205:1210:136"
          },
          {
            "body": {
              "nativeSrc": "25463:136:136",
              "nodeType": "YulBlock",
              "src": "25463:136:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "25508:85:136",
                    "nodeType": "YulBlock",
                    "src": "25508:85:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "25537:1:136",
                              "nodeType": "YulLiteral",
                              "src": "25537:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "25540:1:136",
                              "nodeType": "YulLiteral",
                              "src": "25540:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "25543:1:136",
                              "nodeType": "YulLiteral",
                              "src": "25543:1:136",
                              "type": "",
                              "value": "4"
                            }
                          ],
                          "functionName": {
                            "name": "returndatacopy",
                            "nativeSrc": "25522:14:136",
                            "nodeType": "YulIdentifier",
                            "src": "25522:14:136"
                          },
                          "nativeSrc": "25522:23:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25522:23:136"
                        },
                        "nativeSrc": "25522:23:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "25522:23:136"
                      },
                      {
                        "nativeSrc": "25558:25:136",
                        "nodeType": "YulAssignment",
                        "src": "25558:25:136",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "25569:3:136",
                              "nodeType": "YulLiteral",
                              "src": "25569:3:136",
                              "type": "",
                              "value": "224"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "25580:1:136",
                                  "nodeType": "YulLiteral",
                                  "src": "25580:1:136",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nativeSrc": "25574:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "25574:5:136"
                              },
                              "nativeSrc": "25574:8:136",
                              "nodeType": "YulFunctionCall",
                              "src": "25574:8:136"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nativeSrc": "25565:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25565:3:136"
                          },
                          "nativeSrc": "25565:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "25565:18:136"
                        },
                        "variableNames": [
                          {
                            "name": "sig",
                            "nativeSrc": "25558:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "25558:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nativeSrc": "25479:14:136",
                          "nodeType": "YulIdentifier",
                          "src": "25479:14:136"
                        },
                        "nativeSrc": "25479:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25479:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25497:1:136",
                        "nodeType": "YulLiteral",
                        "src": "25497:1:136",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "25476:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "25476:2:136"
                    },
                    "nativeSrc": "25476:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25476:23:136"
                  },
                  "nativeSrc": "25473:120:136",
                  "nodeType": "YulIf",
                  "src": "25473:120:136"
                }
              ]
            },
            "name": "return_data_selector",
            "nativeSrc": "25420:179:136",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "sig",
                "nativeSrc": "25455:3:136",
                "nodeType": "YulTypedName",
                "src": "25455:3:136",
                "type": ""
              }
            ],
            "src": "25420:179:136"
          },
          {
            "body": {
              "nativeSrc": "25651:581:136",
              "nodeType": "YulBlock",
              "src": "25651:581:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "25691:9:136",
                    "nodeType": "YulBlock",
                    "src": "25691:9:136",
                    "statements": [
                      {
                        "nativeSrc": "25693:5:136",
                        "nodeType": "YulLeave",
                        "src": "25693:5:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nativeSrc": "25667:14:136",
                          "nodeType": "YulIdentifier",
                          "src": "25667:14:136"
                        },
                        "nativeSrc": "25667:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25667:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25685:4:136",
                        "nodeType": "YulLiteral",
                        "src": "25685:4:136",
                        "type": "",
                        "value": "0x44"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "25664:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "25664:2:136"
                    },
                    "nativeSrc": "25664:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25664:26:136"
                  },
                  "nativeSrc": "25661:39:136",
                  "nodeType": "YulIf",
                  "src": "25661:39:136"
                },
                {
                  "nativeSrc": "25709:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "25709:21:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "25727:2:136",
                        "nodeType": "YulLiteral",
                        "src": "25727:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "25721:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "25721:5:136"
                    },
                    "nativeSrc": "25721:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25721:9:136"
                  },
                  "variables": [
                    {
                      "name": "data",
                      "nativeSrc": "25713:4:136",
                      "nodeType": "YulTypedName",
                      "src": "25713:4:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nativeSrc": "25754:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "25754:4:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "25760:1:136",
                        "nodeType": "YulLiteral",
                        "src": "25760:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nativeSrc": "25767:14:136",
                              "nodeType": "YulIdentifier",
                              "src": "25767:14:136"
                            },
                            "nativeSrc": "25767:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "25767:16:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "25789:1:136",
                                "nodeType": "YulLiteral",
                                "src": "25789:1:136",
                                "type": "",
                                "value": "3"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "25785:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "25785:3:136"
                            },
                            "nativeSrc": "25785:6:136",
                            "nodeType": "YulFunctionCall",
                            "src": "25785:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "25763:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "25763:3:136"
                        },
                        "nativeSrc": "25763:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25763:29:136"
                      }
                    ],
                    "functionName": {
                      "name": "returndatacopy",
                      "nativeSrc": "25739:14:136",
                      "nodeType": "YulIdentifier",
                      "src": "25739:14:136"
                    },
                    "nativeSrc": "25739:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25739:54:136"
                  },
                  "nativeSrc": "25739:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "25739:54:136"
                },
                {
                  "nativeSrc": "25802:25:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "25802:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nativeSrc": "25822:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "25822:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "25816:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "25816:5:136"
                    },
                    "nativeSrc": "25816:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25816:11:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "25806:6:136",
                      "nodeType": "YulTypedName",
                      "src": "25806:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "25915:9:136",
                    "nodeType": "YulBlock",
                    "src": "25915:9:136",
                    "statements": [
                      {
                        "nativeSrc": "25917:5:136",
                        "nodeType": "YulLeave",
                        "src": "25917:5:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nativeSrc": "25845:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "25845:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "25853:18:136",
                            "nodeType": "YulLiteral",
                            "src": "25853:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "25842:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "25842:2:136"
                        },
                        "nativeSrc": "25842:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25842:30:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "25881:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "25881:6:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "25889:4:136",
                                "nodeType": "YulLiteral",
                                "src": "25889:4:136",
                                "type": "",
                                "value": "0x24"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "25877:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "25877:3:136"
                            },
                            "nativeSrc": "25877:17:136",
                            "nodeType": "YulFunctionCall",
                            "src": "25877:17:136"
                          },
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nativeSrc": "25896:14:136",
                              "nodeType": "YulIdentifier",
                              "src": "25896:14:136"
                            },
                            "nativeSrc": "25896:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "25896:16:136"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nativeSrc": "25874:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "25874:2:136"
                        },
                        "nativeSrc": "25874:39:136",
                        "nodeType": "YulFunctionCall",
                        "src": "25874:39:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "25839:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "25839:2:136"
                    },
                    "nativeSrc": "25839:75:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25839:75:136"
                  },
                  "nativeSrc": "25836:88:136",
                  "nodeType": "YulIf",
                  "src": "25836:88:136"
                },
                {
                  "nativeSrc": "25933:28:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "25933:28:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nativeSrc": "25948:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "25948:4:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "25954:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "25954:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "25944:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "25944:3:136"
                    },
                    "nativeSrc": "25944:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25944:17:136"
                  },
                  "variables": [
                    {
                      "name": "msg",
                      "nativeSrc": "25937:3:136",
                      "nodeType": "YulTypedName",
                      "src": "25937:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "25970:24:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "25970:24:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "msg",
                        "nativeSrc": "25990:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "25990:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "25984:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "25984:5:136"
                    },
                    "nativeSrc": "25984:10:136",
                    "nodeType": "YulFunctionCall",
                    "src": "25984:10:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "25974:6:136",
                      "nodeType": "YulTypedName",
                      "src": "25974:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "26037:9:136",
                    "nodeType": "YulBlock",
                    "src": "26037:9:136",
                    "statements": [
                      {
                        "nativeSrc": "26039:5:136",
                        "nodeType": "YulLeave",
                        "src": "26039:5:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "26009:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "26009:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "26017:18:136",
                        "nodeType": "YulLiteral",
                        "src": "26017:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "26006:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "26006:2:136"
                    },
                    "nativeSrc": "26006:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26006:30:136"
                  },
                  "nativeSrc": "26003:43:136",
                  "nodeType": "YulIf",
                  "src": "26003:43:136"
                },
                {
                  "body": {
                    "nativeSrc": "26132:9:136",
                    "nodeType": "YulBlock",
                    "src": "26132:9:136",
                    "statements": [
                      {
                        "nativeSrc": "26134:5:136",
                        "nodeType": "YulLeave",
                        "src": "26134:5:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "msg",
                                "nativeSrc": "26069:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "26069:3:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "26074:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "26074:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "26065:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "26065:3:136"
                            },
                            "nativeSrc": "26065:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "26065:16:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26083:4:136",
                            "nodeType": "YulLiteral",
                            "src": "26083:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26061:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26061:3:136"
                        },
                        "nativeSrc": "26061:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26061:27:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "nativeSrc": "26098:4:136",
                                "nodeType": "YulIdentifier",
                                "src": "26098:4:136"
                              },
                              {
                                "arguments": [],
                                "functionName": {
                                  "name": "returndatasize",
                                  "nativeSrc": "26104:14:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "26104:14:136"
                                },
                                "nativeSrc": "26104:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "26104:16:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "26094:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "26094:3:136"
                            },
                            "nativeSrc": "26094:27:136",
                            "nodeType": "YulFunctionCall",
                            "src": "26094:27:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "26127:1:136",
                                "nodeType": "YulLiteral",
                                "src": "26127:1:136",
                                "type": "",
                                "value": "3"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "26123:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "26123:3:136"
                            },
                            "nativeSrc": "26123:6:136",
                            "nodeType": "YulFunctionCall",
                            "src": "26123:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26090:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26090:3:136"
                        },
                        "nativeSrc": "26090:40:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26090:40:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "26058:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "26058:2:136"
                    },
                    "nativeSrc": "26058:73:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26058:73:136"
                  },
                  "nativeSrc": "26055:86:136",
                  "nodeType": "YulIf",
                  "src": "26055:86:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nativeSrc": "26170:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "26170:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nativeSrc": "26184:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "26184:6:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "26192:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "26192:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "26180:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "26180:3:136"
                            },
                            "nativeSrc": "26180:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "26180:19:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26201:4:136",
                            "nodeType": "YulLiteral",
                            "src": "26201:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26176:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26176:3:136"
                        },
                        "nativeSrc": "26176:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26176:30:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nativeSrc": "26150:19:136",
                      "nodeType": "YulIdentifier",
                      "src": "26150:19:136"
                    },
                    "nativeSrc": "26150:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26150:57:136"
                  },
                  "nativeSrc": "26150:57:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26150:57:136"
                },
                {
                  "nativeSrc": "26216:10:136",
                  "nodeType": "YulAssignment",
                  "src": "26216:10:136",
                  "value": {
                    "name": "msg",
                    "nativeSrc": "26223:3:136",
                    "nodeType": "YulIdentifier",
                    "src": "26223:3:136"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "26216:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "26216:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "try_decode_error_message",
            "nativeSrc": "25604:628:136",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "25643:3:136",
                "nodeType": "YulTypedName",
                "src": "25643:3:136",
                "type": ""
              }
            ],
            "src": "25604:628:136"
          },
          {
            "body": {
              "nativeSrc": "26591:971:136",
              "nodeType": "YulBlock",
              "src": "26591:971:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "26608:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "26608:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "26623:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "26623:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "26635:3:136",
                                "nodeType": "YulLiteral",
                                "src": "26635:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "26640:10:136",
                                "nodeType": "YulLiteral",
                                "src": "26640:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "26631:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "26631:3:136"
                            },
                            "nativeSrc": "26631:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "26631:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "26619:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26619:3:136"
                        },
                        "nativeSrc": "26619:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26619:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "26601:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "26601:6:136"
                    },
                    "nativeSrc": "26601:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26601:52:136"
                  },
                  "nativeSrc": "26601:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26601:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "26673:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26673:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26684:2:136",
                            "nodeType": "YulLiteral",
                            "src": "26684:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26669:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26669:3:136"
                        },
                        "nativeSrc": "26669:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26669:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "26689:3:136",
                        "nodeType": "YulLiteral",
                        "src": "26689:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "26662:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "26662:6:136"
                    },
                    "nativeSrc": "26662:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26662:31:136"
                  },
                  "nativeSrc": "26662:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26662:31:136"
                },
                {
                  "nativeSrc": "26702:77:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "26702:77:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "26743:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "26743:6:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "26751:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "26751:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "26763:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26763:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26774:3:136",
                            "nodeType": "YulLiteral",
                            "src": "26774:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26759:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26759:3:136"
                        },
                        "nativeSrc": "26759:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26759:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "26716:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "26716:26:136"
                    },
                    "nativeSrc": "26716:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26716:63:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "26706:6:136",
                      "nodeType": "YulTypedName",
                      "src": "26706:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "26799:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26799:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26810:2:136",
                            "nodeType": "YulLiteral",
                            "src": "26810:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26795:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26795:3:136"
                        },
                        "nativeSrc": "26795:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26795:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "26826:1:136",
                            "nodeType": "YulLiteral",
                            "src": "26826:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value3",
                            "nativeSrc": "26829:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "26829:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "26815:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "26815:10:136"
                        },
                        "nativeSrc": "26815:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26815:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "26788:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "26788:6:136"
                    },
                    "nativeSrc": "26788:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26788:49:136"
                  },
                  "nativeSrc": "26788:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26788:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nativeSrc": "26870:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "26870:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "26882:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26882:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26893:2:136",
                            "nodeType": "YulLiteral",
                            "src": "26893:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26878:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26878:3:136"
                        },
                        "nativeSrc": "26878:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26878:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Mappers",
                      "nativeSrc": "26846:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "26846:23:136"
                    },
                    "nativeSrc": "26846:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26846:51:136"
                  },
                  "nativeSrc": "26846:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26846:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "26917:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26917:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "26928:3:136",
                            "nodeType": "YulLiteral",
                            "src": "26928:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "26913:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26913:3:136"
                        },
                        "nativeSrc": "26913:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26913:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "26938:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "26938:6:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "26946:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "26946:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "26934:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "26934:3:136"
                        },
                        "nativeSrc": "26934:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "26934:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "26906:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "26906:6:136"
                    },
                    "nativeSrc": "26906:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26906:51:136"
                  },
                  "nativeSrc": "26906:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26906:51:136"
                },
                {
                  "nativeSrc": "26966:17:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "26966:17:136",
                  "value": {
                    "name": "tail_1",
                    "nativeSrc": "26977:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "26977:6:136"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nativeSrc": "26970:3:136",
                      "nodeType": "YulTypedName",
                      "src": "26970:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "26999:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "26999:6:136"
                      },
                      {
                        "name": "value6",
                        "nativeSrc": "27007:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "27007:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "26992:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "26992:6:136"
                    },
                    "nativeSrc": "26992:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "26992:22:136"
                  },
                  "nativeSrc": "26992:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "26992:22:136"
                },
                {
                  "nativeSrc": "27023:22:136",
                  "nodeType": "YulAssignment",
                  "src": "27023:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nativeSrc": "27034:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "27034:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "27042:2:136",
                        "nodeType": "YulLiteral",
                        "src": "27042:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "27030:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "27030:3:136"
                    },
                    "nativeSrc": "27030:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27030:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nativeSrc": "27023:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "27023:3:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "27054:50:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "27054:50:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "27076:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "27076:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "27088:1:136",
                                "nodeType": "YulLiteral",
                                "src": "27088:1:136",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "value6",
                                "nativeSrc": "27091:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "27091:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "27084:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "27084:3:136"
                            },
                            "nativeSrc": "27084:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "27084:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "27072:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "27072:3:136"
                        },
                        "nativeSrc": "27072:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "27072:27:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "27101:2:136",
                        "nodeType": "YulLiteral",
                        "src": "27101:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "27068:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "27068:3:136"
                    },
                    "nativeSrc": "27068:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27068:36:136"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nativeSrc": "27058:6:136",
                      "nodeType": "YulTypedName",
                      "src": "27058:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "27113:20:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "27113:20:136",
                  "value": {
                    "name": "value5",
                    "nativeSrc": "27127:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "27127:6:136"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nativeSrc": "27117:6:136",
                      "nodeType": "YulTypedName",
                      "src": "27117:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "27142:10:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "27142:10:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "27151:1:136",
                    "nodeType": "YulLiteral",
                    "src": "27151:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nativeSrc": "27146:1:136",
                      "nodeType": "YulTypedName",
                      "src": "27146:1:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "27210:323:136",
                    "nodeType": "YulBlock",
                    "src": "27210:323:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "27231:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "27231:3:136"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "tail_2",
                                      "nativeSrc": "27244:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "27244:6:136"
                                    },
                                    {
                                      "name": "tail_1",
                                      "nativeSrc": "27252:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "27252:6:136"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nativeSrc": "27240:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "27240:3:136"
                                  },
                                  "nativeSrc": "27240:19:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "27240:19:136"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "27265:2:136",
                                      "nodeType": "YulLiteral",
                                      "src": "27265:2:136",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nativeSrc": "27261:3:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "27261:3:136"
                                  },
                                  "nativeSrc": "27261:7:136",
                                  "nodeType": "YulFunctionCall",
                                  "src": "27261:7:136"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nativeSrc": "27236:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "27236:3:136"
                              },
                              "nativeSrc": "27236:33:136",
                              "nodeType": "YulFunctionCall",
                              "src": "27236:33:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "27224:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "27224:6:136"
                          },
                          "nativeSrc": "27224:46:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27224:46:136"
                        },
                        "nativeSrc": "27224:46:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "27224:46:136"
                      },
                      {
                        "nativeSrc": "27283:83:136",
                        "nodeType": "YulVariableDeclaration",
                        "src": "27283:83:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "value5",
                              "nativeSrc": "27351:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "27351:6:136"
                            },
                            {
                              "name": "srcPtr",
                              "nativeSrc": "27359:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "27359:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "calldata_access_string_calldata",
                            "nativeSrc": "27319:31:136",
                            "nodeType": "YulIdentifier",
                            "src": "27319:31:136"
                          },
                          "nativeSrc": "27319:47:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27319:47:136"
                        },
                        "variables": [
                          {
                            "name": "elementValue0",
                            "nativeSrc": "27287:13:136",
                            "nodeType": "YulTypedName",
                            "src": "27287:13:136",
                            "type": ""
                          },
                          {
                            "name": "elementValue1",
                            "nativeSrc": "27302:13:136",
                            "nodeType": "YulTypedName",
                            "src": "27302:13:136",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nativeSrc": "27379:74:136",
                        "nodeType": "YulAssignment",
                        "src": "27379:74:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "elementValue0",
                              "nativeSrc": "27416:13:136",
                              "nodeType": "YulIdentifier",
                              "src": "27416:13:136"
                            },
                            {
                              "name": "elementValue1",
                              "nativeSrc": "27431:13:136",
                              "nodeType": "YulIdentifier",
                              "src": "27431:13:136"
                            },
                            {
                              "name": "tail_2",
                              "nativeSrc": "27446:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "27446:6:136"
                            }
                          ],
                          "functionName": {
                            "name": "abi_encode_string_calldata",
                            "nativeSrc": "27389:26:136",
                            "nodeType": "YulIdentifier",
                            "src": "27389:26:136"
                          },
                          "nativeSrc": "27389:64:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27389:64:136"
                        },
                        "variableNames": [
                          {
                            "name": "tail_2",
                            "nativeSrc": "27379:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "27379:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "27466:25:136",
                        "nodeType": "YulAssignment",
                        "src": "27466:25:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nativeSrc": "27480:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "27480:6:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "27488:2:136",
                              "nodeType": "YulLiteral",
                              "src": "27488:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "27476:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "27476:3:136"
                          },
                          "nativeSrc": "27476:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27476:15:136"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nativeSrc": "27466:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "27466:6:136"
                          }
                        ]
                      },
                      {
                        "nativeSrc": "27504:19:136",
                        "nodeType": "YulAssignment",
                        "src": "27504:19:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nativeSrc": "27515:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "27515:3:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "27520:2:136",
                              "nodeType": "YulLiteral",
                              "src": "27520:2:136",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "27511:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "27511:3:136"
                          },
                          "nativeSrc": "27511:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27511:12:136"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nativeSrc": "27504:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "27504:3:136"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nativeSrc": "27172:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "27172:1:136"
                      },
                      {
                        "name": "value6",
                        "nativeSrc": "27175:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "27175:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nativeSrc": "27169:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "27169:2:136"
                    },
                    "nativeSrc": "27169:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27169:13:136"
                  },
                  "nativeSrc": "27161:372:136",
                  "nodeType": "YulForLoop",
                  "post": {
                    "nativeSrc": "27183:18:136",
                    "nodeType": "YulBlock",
                    "src": "27183:18:136",
                    "statements": [
                      {
                        "nativeSrc": "27185:14:136",
                        "nodeType": "YulAssignment",
                        "src": "27185:14:136",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nativeSrc": "27194:1:136",
                              "nodeType": "YulIdentifier",
                              "src": "27194:1:136"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "27197:1:136",
                              "nodeType": "YulLiteral",
                              "src": "27197:1:136",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nativeSrc": "27190:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "27190:3:136"
                          },
                          "nativeSrc": "27190:9:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27190:9:136"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nativeSrc": "27185:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "27185:1:136"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nativeSrc": "27165:3:136",
                    "nodeType": "YulBlock",
                    "src": "27165:3:136",
                    "statements": []
                  },
                  "src": "27161:372:136"
                },
                {
                  "nativeSrc": "27542:14:136",
                  "nodeType": "YulAssignment",
                  "src": "27542:14:136",
                  "value": {
                    "name": "tail_2",
                    "nativeSrc": "27550:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "27550:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "27542:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "27542:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr_t_int8_t_enum$_Mappers_$28087_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
            "nativeSrc": "26237:1325:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "26512:9:136",
                "nodeType": "YulTypedName",
                "src": "26512:9:136",
                "type": ""
              },
              {
                "name": "value6",
                "nativeSrc": "26523:6:136",
                "nodeType": "YulTypedName",
                "src": "26523:6:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "26531:6:136",
                "nodeType": "YulTypedName",
                "src": "26531:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "26539:6:136",
                "nodeType": "YulTypedName",
                "src": "26539:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "26547:6:136",
                "nodeType": "YulTypedName",
                "src": "26547:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "26555:6:136",
                "nodeType": "YulTypedName",
                "src": "26555:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "26563:6:136",
                "nodeType": "YulTypedName",
                "src": "26563:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "26571:6:136",
                "nodeType": "YulTypedName",
                "src": "26571:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "26582:4:136",
                "nodeType": "YulTypedName",
                "src": "26582:4:136",
                "type": ""
              }
            ],
            "src": "26237:1325:136"
          },
          {
            "body": {
              "nativeSrc": "27681:170:136",
              "nodeType": "YulBlock",
              "src": "27681:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "27727:16:136",
                    "nodeType": "YulBlock",
                    "src": "27727:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "27736:1:136",
                              "nodeType": "YulLiteral",
                              "src": "27736:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "27739:1:136",
                              "nodeType": "YulLiteral",
                              "src": "27739:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "27729:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "27729:6:136"
                          },
                          "nativeSrc": "27729:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "27729:12:136"
                        },
                        "nativeSrc": "27729:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "27729:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "27702:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "27702:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "27711:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "27711:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "27698:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "27698:3:136"
                        },
                        "nativeSrc": "27698:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "27698:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "27723:2:136",
                        "nodeType": "YulLiteral",
                        "src": "27723:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "27694:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "27694:3:136"
                    },
                    "nativeSrc": "27694:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27694:32:136"
                  },
                  "nativeSrc": "27691:52:136",
                  "nodeType": "YulIf",
                  "src": "27691:52:136"
                },
                {
                  "nativeSrc": "27752:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "27752:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "27771:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "27771:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "27765:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "27765:5:136"
                    },
                    "nativeSrc": "27765:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27765:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "27756:5:136",
                      "nodeType": "YulTypedName",
                      "src": "27756:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "27815:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "27815:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "27790:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "27790:24:136"
                    },
                    "nativeSrc": "27790:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "27790:31:136"
                  },
                  "nativeSrc": "27790:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "27790:31:136"
                },
                {
                  "nativeSrc": "27830:15:136",
                  "nodeType": "YulAssignment",
                  "src": "27830:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "27840:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "27840:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "27830:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "27830:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory",
            "nativeSrc": "27567:284:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "27647:9:136",
                "nodeType": "YulTypedName",
                "src": "27647:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "27658:7:136",
                "nodeType": "YulTypedName",
                "src": "27658:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "27670:6:136",
                "nodeType": "YulTypedName",
                "src": "27670:6:136",
                "type": ""
              }
            ],
            "src": "27567:284:136"
          },
          {
            "body": {
              "nativeSrc": "28134:377:136",
              "nodeType": "YulBlock",
              "src": "28134:377:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "28151:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "28151:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "28162:3:136",
                        "nodeType": "YulLiteral",
                        "src": "28162:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "28144:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28144:6:136"
                    },
                    "nativeSrc": "28144:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28144:22:136"
                  },
                  "nativeSrc": "28144:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "28144:22:136"
                },
                {
                  "nativeSrc": "28175:77:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "28175:77:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "28216:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "28216:6:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "28224:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "28224:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "28236:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28236:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "28247:3:136",
                            "nodeType": "YulLiteral",
                            "src": "28247:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "28232:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28232:3:136"
                        },
                        "nativeSrc": "28232:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28232:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "28189:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "28189:26:136"
                    },
                    "nativeSrc": "28189:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28189:63:136"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nativeSrc": "28179:6:136",
                      "nodeType": "YulTypedName",
                      "src": "28179:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "28272:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28272:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "28283:2:136",
                            "nodeType": "YulLiteral",
                            "src": "28283:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "28268:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28268:3:136"
                        },
                        "nativeSrc": "28268:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28268:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nativeSrc": "28292:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "28292:6:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "28300:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28300:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "28288:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28288:3:136"
                        },
                        "nativeSrc": "28288:22:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28288:22:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "28261:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28261:6:136"
                    },
                    "nativeSrc": "28261:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28261:50:136"
                  },
                  "nativeSrc": "28261:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "28261:50:136"
                },
                {
                  "nativeSrc": "28320:58:136",
                  "nodeType": "YulAssignment",
                  "src": "28320:58:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nativeSrc": "28355:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "28355:6:136"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "28363:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "28363:6:136"
                      },
                      {
                        "name": "tail_1",
                        "nativeSrc": "28371:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "28371:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "28328:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "28328:26:136"
                    },
                    "nativeSrc": "28328:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28328:50:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "28320:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "28320:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "28398:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28398:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "28409:2:136",
                            "nodeType": "YulLiteral",
                            "src": "28409:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "28394:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28394:3:136"
                        },
                        "nativeSrc": "28394:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28394:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "28425:1:136",
                            "nodeType": "YulLiteral",
                            "src": "28425:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value4",
                            "nativeSrc": "28428:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "28428:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "28414:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "28414:10:136"
                        },
                        "nativeSrc": "28414:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28414:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "28387:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28387:6:136"
                    },
                    "nativeSrc": "28387:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28387:49:136"
                  },
                  "nativeSrc": "28387:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "28387:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "28456:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28456:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "28467:2:136",
                            "nodeType": "YulLiteral",
                            "src": "28467:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "28452:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28452:3:136"
                        },
                        "nativeSrc": "28452:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28452:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value5",
                            "nativeSrc": "28476:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "28476:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "28492:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "28492:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "28497:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "28497:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "28488:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "28488:3:136"
                                },
                                "nativeSrc": "28488:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "28488:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "28501:1:136",
                                "nodeType": "YulLiteral",
                                "src": "28501:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "28484:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "28484:3:136"
                            },
                            "nativeSrc": "28484:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "28484:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "28472:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28472:3:136"
                        },
                        "nativeSrc": "28472:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28472:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "28445:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28445:6:136"
                    },
                    "nativeSrc": "28445:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28445:60:136"
                  },
                  "nativeSrc": "28445:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "28445:60:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_calldata_ptr_t_bytes_calldata_ptr_t_int8_t_contract$_IWitOracleRadonRegistry_$27394__to_t_string_memory_ptr_t_bytes_memory_ptr_t_int8_t_address__fromStack_library_reversed",
            "nativeSrc": "27856:655:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "28063:9:136",
                "nodeType": "YulTypedName",
                "src": "28063:9:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "28074:6:136",
                "nodeType": "YulTypedName",
                "src": "28074:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "28082:6:136",
                "nodeType": "YulTypedName",
                "src": "28082:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "28090:6:136",
                "nodeType": "YulTypedName",
                "src": "28090:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "28098:6:136",
                "nodeType": "YulTypedName",
                "src": "28098:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "28106:6:136",
                "nodeType": "YulTypedName",
                "src": "28106:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "28114:6:136",
                "nodeType": "YulTypedName",
                "src": "28114:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "28125:4:136",
                "nodeType": "YulTypedName",
                "src": "28125:4:136",
                "type": ""
              }
            ],
            "src": "27856:655:136"
          },
          {
            "body": {
              "nativeSrc": "28644:283:136",
              "nodeType": "YulBlock",
              "src": "28644:283:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "28690:16:136",
                    "nodeType": "YulBlock",
                    "src": "28690:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "28699:1:136",
                              "nodeType": "YulLiteral",
                              "src": "28699:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "28702:1:136",
                              "nodeType": "YulLiteral",
                              "src": "28702:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "28692:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "28692:6:136"
                          },
                          "nativeSrc": "28692:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "28692:12:136"
                        },
                        "nativeSrc": "28692:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "28692:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "28665:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "28665:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "28674:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28674:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "28661:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28661:3:136"
                        },
                        "nativeSrc": "28661:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28661:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "28686:2:136",
                        "nodeType": "YulLiteral",
                        "src": "28686:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "28657:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "28657:3:136"
                    },
                    "nativeSrc": "28657:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28657:32:136"
                  },
                  "nativeSrc": "28654:52:136",
                  "nodeType": "YulIf",
                  "src": "28654:52:136"
                },
                {
                  "nativeSrc": "28715:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "28715:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "28734:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "28734:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "28728:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "28728:5:136"
                    },
                    "nativeSrc": "28728:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28728:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "28719:5:136",
                      "nodeType": "YulTypedName",
                      "src": "28719:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "28795:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "28795:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_userDefinedValueType_ID4",
                      "nativeSrc": "28753:41:136",
                      "nodeType": "YulIdentifier",
                      "src": "28753:41:136"
                    },
                    "nativeSrc": "28753:48:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28753:48:136"
                  },
                  "nativeSrc": "28753:48:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "28753:48:136"
                },
                {
                  "nativeSrc": "28810:15:136",
                  "nodeType": "YulAssignment",
                  "src": "28810:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "28820:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "28820:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "28810:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28810:6:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "28834:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "28834:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "28849:1:136",
                    "nodeType": "YulLiteral",
                    "src": "28849:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "28838:7:136",
                      "nodeType": "YulTypedName",
                      "src": "28838:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "28859:36:136",
                  "nodeType": "YulAssignment",
                  "src": "28859:36:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "28880:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "28880:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "28891:2:136",
                            "nodeType": "YulLiteral",
                            "src": "28891:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "28876:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "28876:3:136"
                        },
                        "nativeSrc": "28876:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "28876:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "28870:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "28870:5:136"
                    },
                    "nativeSrc": "28870:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "28870:25:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "28859:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "28859:7:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "28904:17:136",
                  "nodeType": "YulAssignment",
                  "src": "28904:17:136",
                  "value": {
                    "name": "value_1",
                    "nativeSrc": "28914:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "28914:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nativeSrc": "28904:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "28904:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4t_userDefinedValueType$_RadonHash_$37153_fromMemory",
            "nativeSrc": "28516:411:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "28602:9:136",
                "nodeType": "YulTypedName",
                "src": "28602:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "28613:7:136",
                "nodeType": "YulTypedName",
                "src": "28613:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "28625:6:136",
                "nodeType": "YulTypedName",
                "src": "28625:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "28633:6:136",
                "nodeType": "YulTypedName",
                "src": "28633:6:136",
                "type": ""
              }
            ],
            "src": "28516:411:136"
          },
          {
            "body": {
              "nativeSrc": "29232:420:136",
              "nodeType": "YulBlock",
              "src": "29232:420:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "29249:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "29249:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "29264:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "29264:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "29276:3:136",
                                "nodeType": "YulLiteral",
                                "src": "29276:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "29281:10:136",
                                "nodeType": "YulLiteral",
                                "src": "29281:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "29272:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "29272:3:136"
                            },
                            "nativeSrc": "29272:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "29272:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "29260:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29260:3:136"
                        },
                        "nativeSrc": "29260:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29260:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "29242:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29242:6:136"
                    },
                    "nativeSrc": "29242:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29242:52:136"
                  },
                  "nativeSrc": "29242:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29242:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29314:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29314:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29325:2:136",
                            "nodeType": "YulLiteral",
                            "src": "29325:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29310:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29310:3:136"
                        },
                        "nativeSrc": "29310:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29310:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "29330:3:136",
                        "nodeType": "YulLiteral",
                        "src": "29330:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "29303:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29303:6:136"
                    },
                    "nativeSrc": "29303:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29303:31:136"
                  },
                  "nativeSrc": "29303:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29303:31:136"
                },
                {
                  "nativeSrc": "29343:71:136",
                  "nodeType": "YulAssignment",
                  "src": "29343:71:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "29378:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "29378:6:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "29386:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "29386:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29398:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29398:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29409:3:136",
                            "nodeType": "YulLiteral",
                            "src": "29409:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29394:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29394:3:136"
                        },
                        "nativeSrc": "29394:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29394:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "29351:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "29351:26:136"
                    },
                    "nativeSrc": "29351:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29351:63:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "29343:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "29343:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29434:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29434:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29445:2:136",
                            "nodeType": "YulLiteral",
                            "src": "29445:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29430:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29430:3:136"
                        },
                        "nativeSrc": "29430:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29430:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "29461:1:136",
                            "nodeType": "YulLiteral",
                            "src": "29461:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value3",
                            "nativeSrc": "29464:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "29464:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "29450:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "29450:10:136"
                        },
                        "nativeSrc": "29450:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29450:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "29423:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29423:6:136"
                    },
                    "nativeSrc": "29423:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29423:49:136"
                  },
                  "nativeSrc": "29423:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29423:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nativeSrc": "29505:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "29505:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29517:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29517:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29528:2:136",
                            "nodeType": "YulLiteral",
                            "src": "29528:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29513:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29513:3:136"
                        },
                        "nativeSrc": "29513:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29513:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Oracles",
                      "nativeSrc": "29481:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "29481:23:136"
                    },
                    "nativeSrc": "29481:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29481:51:136"
                  },
                  "nativeSrc": "29481:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29481:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29552:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29552:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29563:3:136",
                            "nodeType": "YulLiteral",
                            "src": "29563:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29548:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29548:3:136"
                        },
                        "nativeSrc": "29548:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29548:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value5",
                            "nativeSrc": "29573:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "29573:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "29589:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "29589:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "29594:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "29594:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "29585:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "29585:3:136"
                                },
                                "nativeSrc": "29585:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "29585:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "29598:1:136",
                                "nodeType": "YulLiteral",
                                "src": "29598:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "29581:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "29581:3:136"
                            },
                            "nativeSrc": "29581:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "29581:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "29569:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29569:3:136"
                        },
                        "nativeSrc": "29569:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29569:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "29541:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29541:6:136"
                    },
                    "nativeSrc": "29541:61:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29541:61:136"
                  },
                  "nativeSrc": "29541:61:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29541:61:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "29622:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "29622:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "29633:3:136",
                            "nodeType": "YulLiteral",
                            "src": "29633:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "29618:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "29618:3:136"
                        },
                        "nativeSrc": "29618:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29618:19:136"
                      },
                      {
                        "name": "value6",
                        "nativeSrc": "29639:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "29639:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "29611:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29611:6:136"
                    },
                    "nativeSrc": "29611:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29611:35:136"
                  },
                  "nativeSrc": "29611:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29611:35:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_reversed",
            "nativeSrc": "28932:720:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "29153:9:136",
                "nodeType": "YulTypedName",
                "src": "29153:9:136",
                "type": ""
              },
              {
                "name": "value6",
                "nativeSrc": "29164:6:136",
                "nodeType": "YulTypedName",
                "src": "29164:6:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "29172:6:136",
                "nodeType": "YulTypedName",
                "src": "29172:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "29180:6:136",
                "nodeType": "YulTypedName",
                "src": "29180:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "29188:6:136",
                "nodeType": "YulTypedName",
                "src": "29188:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "29196:6:136",
                "nodeType": "YulTypedName",
                "src": "29196:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "29204:6:136",
                "nodeType": "YulTypedName",
                "src": "29204:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "29212:6:136",
                "nodeType": "YulTypedName",
                "src": "29212:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "29223:4:136",
                "nodeType": "YulTypedName",
                "src": "29223:4:136",
                "type": ""
              }
            ],
            "src": "28932:720:136"
          },
          {
            "body": {
              "nativeSrc": "29701:73:136",
              "nodeType": "YulBlock",
              "src": "29701:73:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "29752:16:136",
                    "nodeType": "YulBlock",
                    "src": "29752:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "29761:1:136",
                              "nodeType": "YulLiteral",
                              "src": "29761:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "29764:1:136",
                              "nodeType": "YulLiteral",
                              "src": "29764:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "29754:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "29754:6:136"
                          },
                          "nativeSrc": "29754:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "29754:12:136"
                        },
                        "nativeSrc": "29754:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "29754:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "29724:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "29724:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "29735:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "29735:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "29742:6:136",
                                "nodeType": "YulLiteral",
                                "src": "29742:6:136",
                                "type": "",
                                "value": "0xffff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "29731:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "29731:3:136"
                            },
                            "nativeSrc": "29731:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "29731:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "29721:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "29721:2:136"
                        },
                        "nativeSrc": "29721:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "29721:29:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "29714:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "29714:6:136"
                    },
                    "nativeSrc": "29714:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29714:37:136"
                  },
                  "nativeSrc": "29711:57:136",
                  "nodeType": "YulIf",
                  "src": "29711:57:136"
                }
              ]
            },
            "name": "validator_revert_uint16",
            "nativeSrc": "29657:117:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "29690:5:136",
                "nodeType": "YulTypedName",
                "src": "29690:5:136",
                "type": ""
              }
            ],
            "src": "29657:117:136"
          },
          {
            "body": {
              "nativeSrc": "29827:84:136",
              "nodeType": "YulBlock",
              "src": "29827:84:136",
              "statements": [
                {
                  "nativeSrc": "29837:29:136",
                  "nodeType": "YulAssignment",
                  "src": "29837:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "29859:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "29859:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "29846:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "29846:12:136"
                    },
                    "nativeSrc": "29846:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29846:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "29837:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "29837:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "29899:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "29899:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "29875:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "29875:23:136"
                    },
                    "nativeSrc": "29875:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29875:30:136"
                  },
                  "nativeSrc": "29875:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "29875:30:136"
                }
              ]
            },
            "name": "abi_decode_uint16",
            "nativeSrc": "29779:132:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "29806:6:136",
                "nodeType": "YulTypedName",
                "src": "29806:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "29817:5:136",
                "nodeType": "YulTypedName",
                "src": "29817:5:136",
                "type": ""
              }
            ],
            "src": "29779:132:136"
          },
          {
            "body": {
              "nativeSrc": "29985:176:136",
              "nodeType": "YulBlock",
              "src": "29985:176:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "30031:16:136",
                    "nodeType": "YulBlock",
                    "src": "30031:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "30040:1:136",
                              "nodeType": "YulLiteral",
                              "src": "30040:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "30043:1:136",
                              "nodeType": "YulLiteral",
                              "src": "30043:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "30033:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "30033:6:136"
                          },
                          "nativeSrc": "30033:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "30033:12:136"
                        },
                        "nativeSrc": "30033:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "30033:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "30006:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "30006:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "30015:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "30015:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "30002:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30002:3:136"
                        },
                        "nativeSrc": "30002:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30002:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "30027:2:136",
                        "nodeType": "YulLiteral",
                        "src": "30027:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "29998:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "29998:3:136"
                    },
                    "nativeSrc": "29998:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "29998:32:136"
                  },
                  "nativeSrc": "29995:52:136",
                  "nodeType": "YulIf",
                  "src": "29995:52:136"
                },
                {
                  "nativeSrc": "30056:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30056:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "30082:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "30082:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30069:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30069:12:136"
                    },
                    "nativeSrc": "30069:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30069:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "30060:5:136",
                      "nodeType": "YulTypedName",
                      "src": "30060:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "30125:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "30125:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "30101:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "30101:23:136"
                    },
                    "nativeSrc": "30101:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30101:30:136"
                  },
                  "nativeSrc": "30101:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30101:30:136"
                },
                {
                  "nativeSrc": "30140:15:136",
                  "nodeType": "YulAssignment",
                  "src": "30140:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "30150:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "30150:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "30140:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30140:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint16",
            "nativeSrc": "29916:245:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "29951:9:136",
                "nodeType": "YulTypedName",
                "src": "29951:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "29962:7:136",
                "nodeType": "YulTypedName",
                "src": "29962:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "29974:6:136",
                "nodeType": "YulTypedName",
                "src": "29974:6:136",
                "type": ""
              }
            ],
            "src": "29916:245:136"
          },
          {
            "body": {
              "nativeSrc": "30391:1242:136",
              "nodeType": "YulBlock",
              "src": "30391:1242:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "30408:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "30408:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "30419:2:136",
                        "nodeType": "YulLiteral",
                        "src": "30419:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "30401:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30401:6:136"
                    },
                    "nativeSrc": "30401:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30401:21:136"
                  },
                  "nativeSrc": "30401:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30401:21:136"
                },
                {
                  "nativeSrc": "30431:14:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30431:14:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "30444:1:136",
                    "nodeType": "YulLiteral",
                    "src": "30444:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "30435:5:136",
                      "nodeType": "YulTypedName",
                      "src": "30435:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "30454:29:136",
                  "nodeType": "YulAssignment",
                  "src": "30454:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "30476:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "30476:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30463:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30463:12:136"
                    },
                    "nativeSrc": "30463:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30463:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "30454:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "30454:5:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "30503:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "30503:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30514:2:136",
                            "nodeType": "YulLiteral",
                            "src": "30514:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30499:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30499:3:136"
                        },
                        "nativeSrc": "30499:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30499:18:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "30519:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "30519:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "30492:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30492:6:136"
                    },
                    "nativeSrc": "30492:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30492:33:136"
                  },
                  "nativeSrc": "30492:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30492:33:136"
                },
                {
                  "nativeSrc": "30534:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30534:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "30549:1:136",
                    "nodeType": "YulLiteral",
                    "src": "30549:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "30538:7:136",
                      "nodeType": "YulTypedName",
                      "src": "30538:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "30559:42:136",
                  "nodeType": "YulAssignment",
                  "src": "30559:42:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "30587:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "30587:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30595:4:136",
                            "nodeType": "YulLiteral",
                            "src": "30595:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30583:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30583:3:136"
                        },
                        "nativeSrc": "30583:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30583:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30570:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30570:12:136"
                    },
                    "nativeSrc": "30570:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30570:31:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "30559:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "30559:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "30621:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "30621:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30632:2:136",
                            "nodeType": "YulLiteral",
                            "src": "30632:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30617:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30617:3:136"
                        },
                        "nativeSrc": "30617:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30617:18:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "30637:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "30637:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "30610:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30610:6:136"
                    },
                    "nativeSrc": "30610:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30610:35:136"
                  },
                  "nativeSrc": "30610:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30610:35:136"
                },
                {
                  "nativeSrc": "30654:44:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30654:44:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "30686:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "30686:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30694:2:136",
                            "nodeType": "YulLiteral",
                            "src": "30694:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30682:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30682:3:136"
                        },
                        "nativeSrc": "30682:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30682:15:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30669:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30669:12:136"
                    },
                    "nativeSrc": "30669:29:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30669:29:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "30658:7:136",
                      "nodeType": "YulTypedName",
                      "src": "30658:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "30731:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "30731:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "30707:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "30707:23:136"
                    },
                    "nativeSrc": "30707:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30707:32:136"
                  },
                  "nativeSrc": "30707:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30707:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "30759:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "30759:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30770:3:136",
                            "nodeType": "YulLiteral",
                            "src": "30770:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30755:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30755:3:136"
                        },
                        "nativeSrc": "30755:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30755:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value_2",
                            "nativeSrc": "30780:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "30780:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30789:6:136",
                            "nodeType": "YulLiteral",
                            "src": "30789:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "30776:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30776:3:136"
                        },
                        "nativeSrc": "30776:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30776:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "30748:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30748:6:136"
                    },
                    "nativeSrc": "30748:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30748:49:136"
                  },
                  "nativeSrc": "30748:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30748:49:136"
                },
                {
                  "nativeSrc": "30806:44:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30806:44:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "30838:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "30838:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30846:2:136",
                            "nodeType": "YulLiteral",
                            "src": "30846:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30834:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30834:3:136"
                        },
                        "nativeSrc": "30834:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30834:15:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30821:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30821:12:136"
                    },
                    "nativeSrc": "30821:29:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30821:29:136"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "30810:7:136",
                      "nodeType": "YulTypedName",
                      "src": "30810:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_3",
                        "nativeSrc": "30883:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "30883:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "30859:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "30859:23:136"
                    },
                    "nativeSrc": "30859:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30859:32:136"
                  },
                  "nativeSrc": "30859:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30859:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "30911:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "30911:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30922:3:136",
                            "nodeType": "YulLiteral",
                            "src": "30922:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30907:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30907:3:136"
                        },
                        "nativeSrc": "30907:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30907:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value_3",
                            "nativeSrc": "30932:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "30932:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30941:6:136",
                            "nodeType": "YulLiteral",
                            "src": "30941:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "30928:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30928:3:136"
                        },
                        "nativeSrc": "30928:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30928:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "30900:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "30900:6:136"
                    },
                    "nativeSrc": "30900:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30900:49:136"
                  },
                  "nativeSrc": "30900:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "30900:49:136"
                },
                {
                  "nativeSrc": "30958:45:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "30958:45:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "30990:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "30990:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "30998:3:136",
                            "nodeType": "YulLiteral",
                            "src": "30998:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "30986:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "30986:3:136"
                        },
                        "nativeSrc": "30986:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "30986:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "30973:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "30973:12:136"
                    },
                    "nativeSrc": "30973:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "30973:30:136"
                  },
                  "variables": [
                    {
                      "name": "value_4",
                      "nativeSrc": "30962:7:136",
                      "nodeType": "YulTypedName",
                      "src": "30962:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_4",
                        "nativeSrc": "31036:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "31036:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "31012:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "31012:23:136"
                    },
                    "nativeSrc": "31012:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31012:32:136"
                  },
                  "nativeSrc": "31012:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "31012:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "31064:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31064:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31075:3:136",
                            "nodeType": "YulLiteral",
                            "src": "31075:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31060:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31060:3:136"
                        },
                        "nativeSrc": "31060:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31060:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value_4",
                            "nativeSrc": "31085:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "31085:7:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31094:18:136",
                            "nodeType": "YulLiteral",
                            "src": "31094:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "31081:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31081:3:136"
                        },
                        "nativeSrc": "31081:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31081:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "31053:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "31053:6:136"
                    },
                    "nativeSrc": "31053:61:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31053:61:136"
                  },
                  "nativeSrc": "31053:61:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "31053:61:136"
                },
                {
                  "nativeSrc": "31123:55:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "31123:55:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "31165:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "31165:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31173:3:136",
                            "nodeType": "YulLiteral",
                            "src": "31173:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31161:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31161:3:136"
                        },
                        "nativeSrc": "31161:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31161:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_uint64",
                      "nativeSrc": "31143:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "31143:17:136"
                    },
                    "nativeSrc": "31143:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31143:35:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0",
                      "nativeSrc": "31127:12:136",
                      "nodeType": "YulTypedName",
                      "src": "31127:12:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memberValue0",
                        "nativeSrc": "31229:12:136",
                        "nodeType": "YulIdentifier",
                        "src": "31229:12:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "31247:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31247:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31258:4:136",
                            "nodeType": "YulLiteral",
                            "src": "31258:4:136",
                            "type": "",
                            "value": "0xe0"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31243:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31243:3:136"
                        },
                        "nativeSrc": "31243:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31243:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_userDefinedValueType_Timestamp",
                      "nativeSrc": "31187:41:136",
                      "nodeType": "YulIdentifier",
                      "src": "31187:41:136"
                    },
                    "nativeSrc": "31187:77:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31187:77:136"
                  },
                  "nativeSrc": "31187:77:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "31187:77:136"
                },
                {
                  "nativeSrc": "31273:93:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "31273:93:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "31341:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "31341:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "31353:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "31353:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31361:3:136",
                            "nodeType": "YulLiteral",
                            "src": "31361:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31349:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31349:3:136"
                        },
                        "nativeSrc": "31349:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31349:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldata_access_string_calldata",
                      "nativeSrc": "31309:31:136",
                      "nodeType": "YulIdentifier",
                      "src": "31309:31:136"
                    },
                    "nativeSrc": "31309:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31309:57:136"
                  },
                  "variables": [
                    {
                      "name": "memberValue0_1",
                      "nativeSrc": "31277:14:136",
                      "nodeType": "YulTypedName",
                      "src": "31277:14:136",
                      "type": ""
                    },
                    {
                      "name": "memberValue1",
                      "nativeSrc": "31293:12:136",
                      "nodeType": "YulTypedName",
                      "src": "31293:12:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "31386:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31386:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31397:3:136",
                            "nodeType": "YulLiteral",
                            "src": "31397:3:136",
                            "type": "",
                            "value": "256"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31382:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31382:3:136"
                        },
                        "nativeSrc": "31382:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31382:19:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "31403:4:136",
                        "nodeType": "YulLiteral",
                        "src": "31403:4:136",
                        "type": "",
                        "value": "0xe0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "31375:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "31375:6:136"
                    },
                    "nativeSrc": "31375:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31375:33:136"
                  },
                  "nativeSrc": "31375:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "31375:33:136"
                },
                {
                  "nativeSrc": "31417:88:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "31417:88:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "memberValue0_1",
                        "nativeSrc": "31455:14:136",
                        "nodeType": "YulIdentifier",
                        "src": "31455:14:136"
                      },
                      {
                        "name": "memberValue1",
                        "nativeSrc": "31471:12:136",
                        "nodeType": "YulIdentifier",
                        "src": "31471:12:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "31489:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31489:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31500:3:136",
                            "nodeType": "YulLiteral",
                            "src": "31500:3:136",
                            "type": "",
                            "value": "288"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31485:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31485:3:136"
                        },
                        "nativeSrc": "31485:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31485:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "31428:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "31428:26:136"
                    },
                    "nativeSrc": "31428:77:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31428:77:136"
                  },
                  "variables": [
                    {
                      "name": "end",
                      "nativeSrc": "31421:3:136",
                      "nodeType": "YulTypedName",
                      "src": "31421:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "31525:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31525:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31536:4:136",
                            "nodeType": "YulLiteral",
                            "src": "31536:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "31521:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31521:3:136"
                        },
                        "nativeSrc": "31521:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31521:20:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "31547:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "31547:3:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "31552:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "31552:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "31543:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "31543:3:136"
                        },
                        "nativeSrc": "31543:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31543:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "31514:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "31514:6:136"
                    },
                    "nativeSrc": "31514:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31514:49:136"
                  },
                  "nativeSrc": "31514:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "31514:49:136"
                },
                {
                  "nativeSrc": "31572:55:136",
                  "nodeType": "YulAssignment",
                  "src": "31572:55:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "31607:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "31607:6:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "31615:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "31615:6:136"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "31623:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "31623:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "31580:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "31580:26:136"
                    },
                    "nativeSrc": "31580:47:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31580:47:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "31572:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "31572:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_DataPushReport_$37274_calldata_ptr_t_bytes_calldata_ptr__to_t_struct$_DataPushReport_$37274_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nativeSrc": "30166:1467:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "30344:9:136",
                "nodeType": "YulTypedName",
                "src": "30344:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "30355:6:136",
                "nodeType": "YulTypedName",
                "src": "30355:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "30363:6:136",
                "nodeType": "YulTypedName",
                "src": "30363:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "30371:6:136",
                "nodeType": "YulTypedName",
                "src": "30371:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "30382:4:136",
                "nodeType": "YulTypedName",
                "src": "30382:4:136",
                "type": ""
              }
            ],
            "src": "30166:1467:136"
          },
          {
            "body": {
              "nativeSrc": "31710:88:136",
              "nodeType": "YulBlock",
              "src": "31710:88:136",
              "statements": [
                {
                  "nativeSrc": "31720:22:136",
                  "nodeType": "YulAssignment",
                  "src": "31720:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "31735:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "31735:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "31729:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "31729:5:136"
                    },
                    "nativeSrc": "31729:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31729:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "31720:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "31720:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "31776:16:136",
                    "nodeType": "YulBlock",
                    "src": "31776:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "31785:1:136",
                              "nodeType": "YulLiteral",
                              "src": "31785:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "31788:1:136",
                              "nodeType": "YulLiteral",
                              "src": "31788:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "31778:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "31778:6:136"
                          },
                          "nativeSrc": "31778:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "31778:12:136"
                        },
                        "nativeSrc": "31778:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "31778:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "31764:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "31764:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "31771:2:136",
                            "nodeType": "YulLiteral",
                            "src": "31771:2:136",
                            "type": "",
                            "value": "20"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "31761:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "31761:2:136"
                        },
                        "nativeSrc": "31761:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31761:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "31754:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "31754:6:136"
                    },
                    "nativeSrc": "31754:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31754:21:136"
                  },
                  "nativeSrc": "31751:41:136",
                  "nodeType": "YulIf",
                  "src": "31751:41:136"
                }
              ]
            },
            "name": "abi_decode_enum_RadonDataTypes_fromMemory",
            "nativeSrc": "31638:160:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "31689:6:136",
                "nodeType": "YulTypedName",
                "src": "31689:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "31700:5:136",
                "nodeType": "YulTypedName",
                "src": "31700:5:136",
                "type": ""
              }
            ],
            "src": "31638:160:136"
          },
          {
            "body": {
              "nativeSrc": "31861:102:136",
              "nodeType": "YulBlock",
              "src": "31861:102:136",
              "statements": [
                {
                  "nativeSrc": "31871:22:136",
                  "nodeType": "YulAssignment",
                  "src": "31871:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "31886:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "31886:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "31880:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "31880:5:136"
                    },
                    "nativeSrc": "31880:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31880:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "31871:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "31871:5:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "31941:16:136",
                    "nodeType": "YulBlock",
                    "src": "31941:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "31950:1:136",
                              "nodeType": "YulLiteral",
                              "src": "31950:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "31953:1:136",
                              "nodeType": "YulLiteral",
                              "src": "31953:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "31943:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "31943:6:136"
                          },
                          "nativeSrc": "31943:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "31943:12:136"
                        },
                        "nativeSrc": "31943:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "31943:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "31915:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "31915:5:136"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "31926:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "31926:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "31933:4:136",
                                "nodeType": "YulLiteral",
                                "src": "31933:4:136",
                                "type": "",
                                "value": "0xff"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "31922:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "31922:3:136"
                            },
                            "nativeSrc": "31922:16:136",
                            "nodeType": "YulFunctionCall",
                            "src": "31922:16:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "31912:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "31912:2:136"
                        },
                        "nativeSrc": "31912:27:136",
                        "nodeType": "YulFunctionCall",
                        "src": "31912:27:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "31905:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "31905:6:136"
                    },
                    "nativeSrc": "31905:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "31905:35:136"
                  },
                  "nativeSrc": "31902:55:136",
                  "nodeType": "YulIf",
                  "src": "31902:55:136"
                }
              ]
            },
            "name": "abi_decode_uint8_fromMemory",
            "nativeSrc": "31803:160:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nativeSrc": "31840:6:136",
                "nodeType": "YulTypedName",
                "src": "31840:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "31851:5:136",
                "nodeType": "YulTypedName",
                "src": "31851:5:136",
                "type": ""
              }
            ],
            "src": "31803:160:136"
          },
          {
            "body": {
              "nativeSrc": "32040:1583:136",
              "nodeType": "YulBlock",
              "src": "32040:1583:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "32084:16:136",
                    "nodeType": "YulBlock",
                    "src": "32084:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32093:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32093:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32096:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32096:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32086:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32086:6:136"
                          },
                          "nativeSrc": "32086:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32086:12:136"
                        },
                        "nativeSrc": "32086:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32086:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "32061:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "32061:3:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "32066:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "32066:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "32057:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32057:3:136"
                        },
                        "nativeSrc": "32057:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32057:19:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "32078:4:136",
                        "nodeType": "YulLiteral",
                        "src": "32078:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "32053:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "32053:3:136"
                    },
                    "nativeSrc": "32053:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32053:30:136"
                  },
                  "nativeSrc": "32050:50:136",
                  "nodeType": "YulIf",
                  "src": "32050:50:136"
                },
                {
                  "nativeSrc": "32109:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32109:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "32129:2:136",
                        "nodeType": "YulLiteral",
                        "src": "32129:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32123:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32123:5:136"
                    },
                    "nativeSrc": "32123:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32123:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "32113:6:136",
                      "nodeType": "YulTypedName",
                      "src": "32113:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "32166:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32166:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation_6165",
                      "nativeSrc": "32141:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "32141:24:136"
                    },
                    "nativeSrc": "32141:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32141:32:136"
                  },
                  "nativeSrc": "32141:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32141:32:136"
                },
                {
                  "nativeSrc": "32182:15:136",
                  "nodeType": "YulAssignment",
                  "src": "32182:15:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "32191:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "32191:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nativeSrc": "32182:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32182:5:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "32206:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32206:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "32226:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "32226:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32220:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32220:5:136"
                    },
                    "nativeSrc": "32220:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32220:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "32210:6:136",
                      "nodeType": "YulTypedName",
                      "src": "32210:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "32279:16:136",
                    "nodeType": "YulBlock",
                    "src": "32279:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32288:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32288:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32291:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32291:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32281:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32281:6:136"
                          },
                          "nativeSrc": "32281:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32281:12:136"
                        },
                        "nativeSrc": "32281:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32281:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "32251:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32251:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "32259:18:136",
                        "nodeType": "YulLiteral",
                        "src": "32259:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "32248:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "32248:2:136"
                    },
                    "nativeSrc": "32248:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32248:30:136"
                  },
                  "nativeSrc": "32245:50:136",
                  "nodeType": "YulIf",
                  "src": "32245:50:136"
                },
                {
                  "nativeSrc": "32304:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32304:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "32318:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "32318:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "32329:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32329:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "32314:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "32314:3:136"
                    },
                    "nativeSrc": "32314:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32314:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "32308:2:136",
                      "nodeType": "YulTypedName",
                      "src": "32308:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "32370:16:136",
                    "nodeType": "YulBlock",
                    "src": "32370:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32379:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32379:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32382:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32382:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32372:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32372:6:136"
                          },
                          "nativeSrc": "32372:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32372:12:136"
                        },
                        "nativeSrc": "32372:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32372:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "end",
                            "nativeSrc": "32356:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "32356:3:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "32361:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "32361:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "32352:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32352:3:136"
                        },
                        "nativeSrc": "32352:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32352:12:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "32366:2:136",
                        "nodeType": "YulLiteral",
                        "src": "32366:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "32348:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "32348:3:136"
                    },
                    "nativeSrc": "32348:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32348:21:136"
                  },
                  "nativeSrc": "32345:41:136",
                  "nodeType": "YulIf",
                  "src": "32345:41:136"
                },
                {
                  "nativeSrc": "32395:25:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32395:25:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "32417:2:136",
                        "nodeType": "YulLiteral",
                        "src": "32417:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32411:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32411:5:136"
                    },
                    "nativeSrc": "32411:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32411:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr_1",
                      "nativeSrc": "32399:8:136",
                      "nodeType": "YulTypedName",
                      "src": "32399:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr_1",
                        "nativeSrc": "32454:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "32454:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation_6166",
                      "nativeSrc": "32429:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "32429:24:136"
                    },
                    "nativeSrc": "32429:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32429:34:136"
                  },
                  "nativeSrc": "32429:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32429:34:136"
                },
                {
                  "nativeSrc": "32472:25:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32472:25:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "32494:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "32494:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32488:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32488:5:136"
                    },
                    "nativeSrc": "32488:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32488:9:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "32476:8:136",
                      "nodeType": "YulTypedName",
                      "src": "32476:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "32542:16:136",
                    "nodeType": "YulBlock",
                    "src": "32542:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32551:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32551:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32554:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32554:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32544:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32544:6:136"
                          },
                          "nativeSrc": "32544:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32544:12:136"
                        },
                        "nativeSrc": "32544:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32544:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "32512:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "32512:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "32522:18:136",
                        "nodeType": "YulLiteral",
                        "src": "32522:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "32509:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "32509:2:136"
                    },
                    "nativeSrc": "32509:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32509:32:136"
                  },
                  "nativeSrc": "32506:52:136",
                  "nodeType": "YulIf",
                  "src": "32506:52:136"
                },
                {
                  "nativeSrc": "32567:27:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32567:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "32581:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "32581:2:136"
                      },
                      {
                        "name": "offset_1",
                        "nativeSrc": "32585:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "32585:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "32577:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "32577:3:136"
                    },
                    "nativeSrc": "32577:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32577:17:136"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "32571:2:136",
                      "nodeType": "YulTypedName",
                      "src": "32571:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "32638:16:136",
                    "nodeType": "YulBlock",
                    "src": "32638:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32647:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32647:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32650:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32650:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32640:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32640:6:136"
                          },
                          "nativeSrc": "32640:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32640:12:136"
                        },
                        "nativeSrc": "32640:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32640:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "32621:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "32621:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "32625:4:136",
                                "nodeType": "YulLiteral",
                                "src": "32625:4:136",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "32617:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "32617:3:136"
                            },
                            "nativeSrc": "32617:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "32617:13:136"
                          },
                          {
                            "name": "end",
                            "nativeSrc": "32632:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "32632:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "32613:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32613:3:136"
                        },
                        "nativeSrc": "32613:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32613:23:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "32606:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "32606:6:136"
                    },
                    "nativeSrc": "32606:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32606:31:136"
                  },
                  "nativeSrc": "32603:51:136",
                  "nodeType": "YulIf",
                  "src": "32603:51:136"
                },
                {
                  "nativeSrc": "32663:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32663:23:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nativeSrc": "32683:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "32683:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32677:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32677:5:136"
                    },
                    "nativeSrc": "32677:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32677:9:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "32667:6:136",
                      "nodeType": "YulTypedName",
                      "src": "32667:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "32695:46:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32695:46:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "length",
                        "nativeSrc": "32734:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32734:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_string",
                      "nativeSrc": "32705:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "32705:28:136"
                    },
                    "nativeSrc": "32705:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32705:36:136"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "32699:2:136",
                      "nodeType": "YulTypedName",
                      "src": "32699:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "32750:25:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "32750:25:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "32772:2:136",
                        "nodeType": "YulLiteral",
                        "src": "32772:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "32766:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32766:5:136"
                    },
                    "nativeSrc": "32766:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32766:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr_2",
                      "nativeSrc": "32754:8:136",
                      "nodeType": "YulTypedName",
                      "src": "32754:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr_2",
                        "nativeSrc": "32804:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "32804:8:136"
                      },
                      {
                        "name": "_3",
                        "nativeSrc": "32814:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "32814:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nativeSrc": "32784:19:136",
                      "nodeType": "YulIdentifier",
                      "src": "32784:19:136"
                    },
                    "nativeSrc": "32784:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32784:33:136"
                  },
                  "nativeSrc": "32784:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32784:33:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr_2",
                        "nativeSrc": "32833:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "32833:8:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "32843:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32843:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "32826:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "32826:6:136"
                    },
                    "nativeSrc": "32826:24:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32826:24:136"
                  },
                  "nativeSrc": "32826:24:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32826:24:136"
                },
                {
                  "body": {
                    "nativeSrc": "32898:16:136",
                    "nodeType": "YulBlock",
                    "src": "32898:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "32907:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32907:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "32910:1:136",
                              "nodeType": "YulLiteral",
                              "src": "32910:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "32900:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "32900:6:136"
                          },
                          "nativeSrc": "32900:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "32900:12:136"
                        },
                        "nativeSrc": "32900:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "32900:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "32873:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "32873:2:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "32877:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "32877:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "32869:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "32869:3:136"
                            },
                            "nativeSrc": "32869:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "32869:15:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "32886:4:136",
                            "nodeType": "YulLiteral",
                            "src": "32886:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "32865:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32865:3:136"
                        },
                        "nativeSrc": "32865:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32865:26:136"
                      },
                      {
                        "name": "end",
                        "nativeSrc": "32893:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "32893:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "32862:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "32862:2:136"
                    },
                    "nativeSrc": "32862:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32862:35:136"
                  },
                  "nativeSrc": "32859:55:136",
                  "nodeType": "YulIf",
                  "src": "32859:55:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr_2",
                            "nativeSrc": "32933:8:136",
                            "nodeType": "YulIdentifier",
                            "src": "32933:8:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "32943:4:136",
                            "nodeType": "YulLiteral",
                            "src": "32943:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "32929:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32929:3:136"
                        },
                        "nativeSrc": "32929:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32929:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nativeSrc": "32954:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "32954:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "32958:4:136",
                            "nodeType": "YulLiteral",
                            "src": "32958:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "32950:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32950:3:136"
                        },
                        "nativeSrc": "32950:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32950:13:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "32965:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "32965:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "32923:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "32923:5:136"
                    },
                    "nativeSrc": "32923:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32923:49:136"
                  },
                  "nativeSrc": "32923:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32923:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr_2",
                                "nativeSrc": "32996:8:136",
                                "nodeType": "YulIdentifier",
                                "src": "32996:8:136"
                              },
                              {
                                "name": "length",
                                "nativeSrc": "33006:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "33006:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "32992:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "32992:3:136"
                            },
                            "nativeSrc": "32992:21:136",
                            "nodeType": "YulFunctionCall",
                            "src": "32992:21:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33015:4:136",
                            "nodeType": "YulLiteral",
                            "src": "33015:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "32988:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "32988:3:136"
                        },
                        "nativeSrc": "32988:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "32988:32:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "33022:1:136",
                        "nodeType": "YulLiteral",
                        "src": "33022:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "32981:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "32981:6:136"
                    },
                    "nativeSrc": "32981:43:136",
                    "nodeType": "YulFunctionCall",
                    "src": "32981:43:136"
                  },
                  "nativeSrc": "32981:43:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "32981:43:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr_1",
                        "nativeSrc": "33040:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "33040:8:136"
                      },
                      {
                        "name": "memPtr_2",
                        "nativeSrc": "33050:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "33050:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33033:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33033:6:136"
                    },
                    "nativeSrc": "33033:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33033:26:136"
                  },
                  "nativeSrc": "33033:26:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33033:26:136"
                },
                {
                  "nativeSrc": "33068:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "33068:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "33083:1:136",
                    "nodeType": "YulLiteral",
                    "src": "33083:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "33072:7:136",
                      "nodeType": "YulTypedName",
                      "src": "33072:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "33093:31:136",
                  "nodeType": "YulAssignment",
                  "src": "33093:31:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "33114:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "33114:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33118:4:136",
                            "nodeType": "YulLiteral",
                            "src": "33118:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33110:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33110:3:136"
                        },
                        "nativeSrc": "33110:13:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33110:13:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "33104:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "33104:5:136"
                    },
                    "nativeSrc": "33104:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33104:20:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "33093:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "33093:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr_1",
                            "nativeSrc": "33144:8:136",
                            "nodeType": "YulIdentifier",
                            "src": "33144:8:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33154:4:136",
                            "nodeType": "YulLiteral",
                            "src": "33154:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33140:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33140:3:136"
                        },
                        "nativeSrc": "33140:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33140:19:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "33161:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "33161:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33133:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33133:6:136"
                    },
                    "nativeSrc": "33133:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33133:36:136"
                  },
                  "nativeSrc": "33133:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33133:36:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "33185:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "33185:6:136"
                      },
                      {
                        "name": "memPtr_1",
                        "nativeSrc": "33193:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "33193:8:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33178:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33178:6:136"
                    },
                    "nativeSrc": "33178:24:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33178:24:136"
                  },
                  "nativeSrc": "33178:24:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33178:24:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "33222:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33222:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33230:4:136",
                            "nodeType": "YulLiteral",
                            "src": "33230:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33218:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33218:3:136"
                        },
                        "nativeSrc": "33218:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33218:17:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "33269:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "33269:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "33280:4:136",
                                "nodeType": "YulLiteral",
                                "src": "33280:4:136",
                                "type": "",
                                "value": "0x20"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "33265:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "33265:3:136"
                            },
                            "nativeSrc": "33265:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "33265:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8_fromMemory",
                          "nativeSrc": "33237:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "33237:27:136"
                        },
                        "nativeSrc": "33237:49:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33237:49:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33211:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33211:6:136"
                    },
                    "nativeSrc": "33211:76:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33211:76:136"
                  },
                  "nativeSrc": "33211:76:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33211:76:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "33307:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33307:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33315:2:136",
                            "nodeType": "YulLiteral",
                            "src": "33315:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33303:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33303:3:136"
                        },
                        "nativeSrc": "33303:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33303:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "33352:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "33352:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "33363:2:136",
                                "nodeType": "YulLiteral",
                                "src": "33363:2:136",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "33348:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "33348:3:136"
                            },
                            "nativeSrc": "33348:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "33348:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8_fromMemory",
                          "nativeSrc": "33320:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "33320:27:136"
                        },
                        "nativeSrc": "33320:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33320:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33296:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33296:6:136"
                    },
                    "nativeSrc": "33296:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33296:72:136"
                  },
                  "nativeSrc": "33296:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33296:72:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "33388:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33388:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33396:2:136",
                            "nodeType": "YulLiteral",
                            "src": "33396:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33384:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33384:3:136"
                        },
                        "nativeSrc": "33384:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33384:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "33433:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "33433:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "33444:2:136",
                                "nodeType": "YulLiteral",
                                "src": "33444:2:136",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "33429:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "33429:3:136"
                            },
                            "nativeSrc": "33429:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "33429:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint8_fromMemory",
                          "nativeSrc": "33401:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "33401:27:136"
                        },
                        "nativeSrc": "33401:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33401:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33377:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33377:6:136"
                    },
                    "nativeSrc": "33377:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33377:72:136"
                  },
                  "nativeSrc": "33377:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33377:72:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "33469:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33469:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33477:3:136",
                            "nodeType": "YulLiteral",
                            "src": "33477:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33465:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33465:3:136"
                        },
                        "nativeSrc": "33465:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33465:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "33516:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "33516:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "33527:3:136",
                                "nodeType": "YulLiteral",
                                "src": "33527:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "33512:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "33512:3:136"
                            },
                            "nativeSrc": "33512:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "33512:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64_fromMemory",
                          "nativeSrc": "33483:28:136",
                          "nodeType": "YulIdentifier",
                          "src": "33483:28:136"
                        },
                        "nativeSrc": "33483:49:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33483:49:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33458:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33458:6:136"
                    },
                    "nativeSrc": "33458:75:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33458:75:136"
                  },
                  "nativeSrc": "33458:75:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33458:75:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "33553:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33553:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "33561:3:136",
                            "nodeType": "YulLiteral",
                            "src": "33561:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "33549:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33549:3:136"
                        },
                        "nativeSrc": "33549:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33549:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "33600:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "33600:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "33611:3:136",
                                "nodeType": "YulLiteral",
                                "src": "33611:3:136",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "33596:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "33596:3:136"
                            },
                            "nativeSrc": "33596:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "33596:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64_fromMemory",
                          "nativeSrc": "33567:28:136",
                          "nodeType": "YulIdentifier",
                          "src": "33567:28:136"
                        },
                        "nativeSrc": "33567:49:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33567:49:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "33542:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "33542:6:136"
                    },
                    "nativeSrc": "33542:75:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33542:75:136"
                  },
                  "nativeSrc": "33542:75:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "33542:75:136"
                }
              ]
            },
            "name": "abi_decode_struct_CBOR_fromMemory",
            "nativeSrc": "31968:1655:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "32011:9:136",
                "nodeType": "YulTypedName",
                "src": "32011:9:136",
                "type": ""
              },
              {
                "name": "end",
                "nativeSrc": "32022:3:136",
                "nodeType": "YulTypedName",
                "src": "32022:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nativeSrc": "32030:5:136",
                "nodeType": "YulTypedName",
                "src": "32030:5:136",
                "type": ""
              }
            ],
            "src": "31968:1655:136"
          },
          {
            "body": {
              "nativeSrc": "33738:1047:136",
              "nodeType": "YulBlock",
              "src": "33738:1047:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "33784:16:136",
                    "nodeType": "YulBlock",
                    "src": "33784:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "33793:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33793:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "33796:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33796:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "33786:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33786:6:136"
                          },
                          "nativeSrc": "33786:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "33786:12:136"
                        },
                        "nativeSrc": "33786:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "33786:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "33759:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "33759:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "33768:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "33768:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "33755:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33755:3:136"
                        },
                        "nativeSrc": "33755:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33755:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "33780:2:136",
                        "nodeType": "YulLiteral",
                        "src": "33780:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "33751:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "33751:3:136"
                    },
                    "nativeSrc": "33751:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33751:32:136"
                  },
                  "nativeSrc": "33748:52:136",
                  "nodeType": "YulIf",
                  "src": "33748:52:136"
                },
                {
                  "nativeSrc": "33809:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "33809:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "33829:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "33829:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "33823:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "33823:5:136"
                    },
                    "nativeSrc": "33823:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33823:16:136"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nativeSrc": "33813:6:136",
                      "nodeType": "YulTypedName",
                      "src": "33813:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "33882:16:136",
                    "nodeType": "YulBlock",
                    "src": "33882:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "33891:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33891:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "33894:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33894:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "33884:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33884:6:136"
                          },
                          "nativeSrc": "33884:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "33884:12:136"
                        },
                        "nativeSrc": "33884:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "33884:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nativeSrc": "33854:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "33854:6:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "33862:18:136",
                        "nodeType": "YulLiteral",
                        "src": "33862:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "33851:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "33851:2:136"
                    },
                    "nativeSrc": "33851:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33851:30:136"
                  },
                  "nativeSrc": "33848:50:136",
                  "nodeType": "YulIf",
                  "src": "33848:50:136"
                },
                {
                  "nativeSrc": "33907:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "33907:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "33921:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "33921:9:136"
                      },
                      {
                        "name": "offset",
                        "nativeSrc": "33932:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "33932:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "33917:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "33917:3:136"
                    },
                    "nativeSrc": "33917:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33917:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "33911:2:136",
                      "nodeType": "YulTypedName",
                      "src": "33911:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "33979:16:136",
                    "nodeType": "YulBlock",
                    "src": "33979:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "33988:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33988:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "33991:1:136",
                              "nodeType": "YulLiteral",
                              "src": "33991:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "33981:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "33981:6:136"
                          },
                          "nativeSrc": "33981:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "33981:12:136"
                        },
                        "nativeSrc": "33981:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "33981:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "33959:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "33959:7:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "33968:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "33968:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "33955:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "33955:3:136"
                        },
                        "nativeSrc": "33955:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "33955:16:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "33973:4:136",
                        "nodeType": "YulLiteral",
                        "src": "33973:4:136",
                        "type": "",
                        "value": "0xc0"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "33951:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "33951:3:136"
                    },
                    "nativeSrc": "33951:27:136",
                    "nodeType": "YulFunctionCall",
                    "src": "33951:27:136"
                  },
                  "nativeSrc": "33948:47:136",
                  "nodeType": "YulIf",
                  "src": "33948:47:136"
                },
                {
                  "nativeSrc": "34004:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "34004:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "34024:2:136",
                        "nodeType": "YulLiteral",
                        "src": "34024:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "34018:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "34018:5:136"
                    },
                    "nativeSrc": "34018:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34018:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "34008:6:136",
                      "nodeType": "YulTypedName",
                      "src": "34008:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "34061:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "34061:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation_6165",
                      "nativeSrc": "34036:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "34036:24:136"
                    },
                    "nativeSrc": "34036:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34036:32:136"
                  },
                  "nativeSrc": "34036:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34036:32:136"
                },
                {
                  "nativeSrc": "34077:22:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "34077:22:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "34096:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "34096:2:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "34090:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "34090:5:136"
                    },
                    "nativeSrc": "34090:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34090:9:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "34081:5:136",
                      "nodeType": "YulTypedName",
                      "src": "34081:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "34134:16:136",
                    "nodeType": "YulBlock",
                    "src": "34134:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "34143:1:136",
                              "nodeType": "YulLiteral",
                              "src": "34143:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "34146:1:136",
                              "nodeType": "YulLiteral",
                              "src": "34146:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "34136:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34136:6:136"
                          },
                          "nativeSrc": "34136:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "34136:12:136"
                        },
                        "nativeSrc": "34136:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "34136:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "34121:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "34121:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34128:3:136",
                            "nodeType": "YulLiteral",
                            "src": "34128:3:136",
                            "type": "",
                            "value": "256"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nativeSrc": "34118:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "34118:2:136"
                        },
                        "nativeSrc": "34118:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34118:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "34111:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34111:6:136"
                    },
                    "nativeSrc": "34111:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34111:22:136"
                  },
                  "nativeSrc": "34108:42:136",
                  "nodeType": "YulIf",
                  "src": "34108:42:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "34166:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "34166:6:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "34174:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "34174:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34159:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34159:6:136"
                    },
                    "nativeSrc": "34159:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34159:21:136"
                  },
                  "nativeSrc": "34159:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34159:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "34200:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34200:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34208:2:136",
                            "nodeType": "YulLiteral",
                            "src": "34208:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34196:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34196:3:136"
                        },
                        "nativeSrc": "34196:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34196:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "34259:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "34259:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "34263:2:136",
                                "nodeType": "YulLiteral",
                                "src": "34263:2:136",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "34255:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "34255:3:136"
                            },
                            "nativeSrc": "34255:11:136",
                            "nodeType": "YulFunctionCall",
                            "src": "34255:11:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_enum_RadonDataTypes_fromMemory",
                          "nativeSrc": "34213:41:136",
                          "nodeType": "YulIdentifier",
                          "src": "34213:41:136"
                        },
                        "nativeSrc": "34213:54:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34213:54:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34189:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34189:6:136"
                    },
                    "nativeSrc": "34189:79:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34189:79:136"
                  },
                  "nativeSrc": "34189:79:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34189:79:136"
                },
                {
                  "nativeSrc": "34277:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "34277:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "34292:1:136",
                    "nodeType": "YulLiteral",
                    "src": "34292:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "34281:7:136",
                      "nodeType": "YulTypedName",
                      "src": "34281:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "34302:29:136",
                  "nodeType": "YulAssignment",
                  "src": "34302:29:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "34323:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "34323:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34327:2:136",
                            "nodeType": "YulLiteral",
                            "src": "34327:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34319:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34319:3:136"
                        },
                        "nativeSrc": "34319:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34319:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "34313:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "34313:5:136"
                    },
                    "nativeSrc": "34313:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34313:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_1",
                      "nativeSrc": "34302:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "34302:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "34351:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34351:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34359:2:136",
                            "nodeType": "YulLiteral",
                            "src": "34359:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34347:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34347:3:136"
                        },
                        "nativeSrc": "34347:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34347:15:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "34364:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "34364:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34340:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34340:6:136"
                    },
                    "nativeSrc": "34340:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34340:32:136"
                  },
                  "nativeSrc": "34340:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34340:32:136"
                },
                {
                  "nativeSrc": "34381:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "34381:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "34396:1:136",
                    "nodeType": "YulLiteral",
                    "src": "34396:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "34385:7:136",
                      "nodeType": "YulTypedName",
                      "src": "34385:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "34406:29:136",
                  "nodeType": "YulAssignment",
                  "src": "34406:29:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "34427:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "34427:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34431:2:136",
                            "nodeType": "YulLiteral",
                            "src": "34431:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34423:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34423:3:136"
                        },
                        "nativeSrc": "34423:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34423:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "34417:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "34417:5:136"
                    },
                    "nativeSrc": "34417:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34417:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_2",
                      "nativeSrc": "34406:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "34406:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "34455:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34455:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34463:2:136",
                            "nodeType": "YulLiteral",
                            "src": "34463:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34451:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34451:3:136"
                        },
                        "nativeSrc": "34451:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34451:15:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "34468:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "34468:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34444:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34444:6:136"
                    },
                    "nativeSrc": "34444:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34444:32:136"
                  },
                  "nativeSrc": "34444:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34444:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "34496:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34496:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34504:3:136",
                            "nodeType": "YulLiteral",
                            "src": "34504:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34492:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34492:3:136"
                        },
                        "nativeSrc": "34492:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34492:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "34543:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "34543:2:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "34547:3:136",
                                "nodeType": "YulLiteral",
                                "src": "34547:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "34539:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "34539:3:136"
                            },
                            "nativeSrc": "34539:12:136",
                            "nodeType": "YulFunctionCall",
                            "src": "34539:12:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint64_fromMemory",
                          "nativeSrc": "34510:28:136",
                          "nodeType": "YulIdentifier",
                          "src": "34510:28:136"
                        },
                        "nativeSrc": "34510:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34510:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34485:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34485:6:136"
                    },
                    "nativeSrc": "34485:68:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34485:68:136"
                  },
                  "nativeSrc": "34485:68:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34485:68:136"
                },
                {
                  "nativeSrc": "34562:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "34562:35:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "34588:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "34588:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34592:3:136",
                            "nodeType": "YulLiteral",
                            "src": "34592:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34584:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34584:3:136"
                        },
                        "nativeSrc": "34584:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34584:12:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "34578:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "34578:5:136"
                    },
                    "nativeSrc": "34578:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34578:19:136"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nativeSrc": "34566:8:136",
                      "nodeType": "YulTypedName",
                      "src": "34566:8:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "34642:16:136",
                    "nodeType": "YulBlock",
                    "src": "34642:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "34651:1:136",
                              "nodeType": "YulLiteral",
                              "src": "34651:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "34654:1:136",
                              "nodeType": "YulLiteral",
                              "src": "34654:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "34644:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34644:6:136"
                          },
                          "nativeSrc": "34644:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "34644:12:136"
                        },
                        "nativeSrc": "34644:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "34644:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nativeSrc": "34612:8:136",
                        "nodeType": "YulIdentifier",
                        "src": "34612:8:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "34622:18:136",
                        "nodeType": "YulLiteral",
                        "src": "34622:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "34609:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "34609:2:136"
                    },
                    "nativeSrc": "34609:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34609:32:136"
                  },
                  "nativeSrc": "34606:52:136",
                  "nodeType": "YulIf",
                  "src": "34606:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "34678:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "34678:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34686:3:136",
                            "nodeType": "YulLiteral",
                            "src": "34686:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "34674:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34674:3:136"
                        },
                        "nativeSrc": "34674:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34674:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "34730:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "34730:2:136"
                              },
                              {
                                "name": "offset_1",
                                "nativeSrc": "34734:8:136",
                                "nodeType": "YulIdentifier",
                                "src": "34734:8:136"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "34726:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "34726:3:136"
                            },
                            "nativeSrc": "34726:17:136",
                            "nodeType": "YulFunctionCall",
                            "src": "34726:17:136"
                          },
                          {
                            "name": "dataEnd",
                            "nativeSrc": "34745:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "34745:7:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_struct_CBOR_fromMemory",
                          "nativeSrc": "34692:33:136",
                          "nodeType": "YulIdentifier",
                          "src": "34692:33:136"
                        },
                        "nativeSrc": "34692:61:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34692:61:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34667:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34667:6:136"
                    },
                    "nativeSrc": "34667:87:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34667:87:136"
                  },
                  "nativeSrc": "34667:87:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34667:87:136"
                },
                {
                  "nativeSrc": "34763:16:136",
                  "nodeType": "YulAssignment",
                  "src": "34763:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "34773:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "34773:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "34763:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34763:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_DataResult_$37293_memory_ptr_fromMemory",
            "nativeSrc": "33628:1157:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "33704:9:136",
                "nodeType": "YulTypedName",
                "src": "33704:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "33715:7:136",
                "nodeType": "YulTypedName",
                "src": "33715:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "33727:6:136",
                "nodeType": "YulTypedName",
                "src": "33727:6:136",
                "type": ""
              }
            ],
            "src": "33628:1157:136"
          },
          {
            "body": {
              "nativeSrc": "34822:95:136",
              "nodeType": "YulBlock",
              "src": "34822:95:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "34839:1:136",
                        "nodeType": "YulLiteral",
                        "src": "34839:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "34846:3:136",
                            "nodeType": "YulLiteral",
                            "src": "34846:3:136",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34851:10:136",
                            "nodeType": "YulLiteral",
                            "src": "34851:10:136",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nativeSrc": "34842:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34842:3:136"
                        },
                        "nativeSrc": "34842:20:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34842:20:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34832:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34832:6:136"
                    },
                    "nativeSrc": "34832:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34832:31:136"
                  },
                  "nativeSrc": "34832:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34832:31:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "34879:1:136",
                        "nodeType": "YulLiteral",
                        "src": "34879:1:136",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "34882:4:136",
                        "nodeType": "YulLiteral",
                        "src": "34882:4:136",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "34872:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34872:6:136"
                    },
                    "nativeSrc": "34872:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34872:15:136"
                  },
                  "nativeSrc": "34872:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34872:15:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "34903:1:136",
                        "nodeType": "YulLiteral",
                        "src": "34903:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "34906:4:136",
                        "nodeType": "YulLiteral",
                        "src": "34906:4:136",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nativeSrc": "34896:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "34896:6:136"
                    },
                    "nativeSrc": "34896:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34896:15:136"
                  },
                  "nativeSrc": "34896:15:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "34896:15:136"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nativeSrc": "34790:127:136",
            "nodeType": "YulFunctionDefinition",
            "src": "34790:127:136"
          },
          {
            "body": {
              "nativeSrc": "34969:144:136",
              "nodeType": "YulBlock",
              "src": "34969:144:136",
              "statements": [
                {
                  "nativeSrc": "34979:66:136",
                  "nodeType": "YulAssignment",
                  "src": "34979:66:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "34994:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "34994:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "34997:18:136",
                            "nodeType": "YulLiteral",
                            "src": "34997:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "34990:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "34990:3:136"
                        },
                        "nativeSrc": "34990:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "34990:26:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "35022:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35022:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "35025:18:136",
                            "nodeType": "YulLiteral",
                            "src": "35025:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "35018:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35018:3:136"
                        },
                        "nativeSrc": "35018:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35018:26:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "34986:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "34986:3:136"
                    },
                    "nativeSrc": "34986:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "34986:59:136"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "34979:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "34979:3:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "35085:22:136",
                    "nodeType": "YulBlock",
                    "src": "35085:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "35087:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "35087:16:136"
                          },
                          "nativeSrc": "35087:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "35087:18:136"
                        },
                        "nativeSrc": "35087:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "35087:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "sum",
                        "nativeSrc": "35060:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "35060:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "35065:18:136",
                        "nodeType": "YulLiteral",
                        "src": "35065:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "35057:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "35057:2:136"
                    },
                    "nativeSrc": "35057:27:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35057:27:136"
                  },
                  "nativeSrc": "35054:53:136",
                  "nodeType": "YulIf",
                  "src": "35054:53:136"
                }
              ]
            },
            "name": "checked_add_t_uint64",
            "nativeSrc": "34922:191:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "34952:1:136",
                "nodeType": "YulTypedName",
                "src": "34952:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "34955:1:136",
                "nodeType": "YulTypedName",
                "src": "34955:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "34961:3:136",
                "nodeType": "YulTypedName",
                "src": "34961:3:136",
                "type": ""
              }
            ],
            "src": "34922:191:136"
          },
          {
            "body": {
              "nativeSrc": "35166:146:136",
              "nodeType": "YulBlock",
              "src": "35166:146:136",
              "statements": [
                {
                  "nativeSrc": "35176:67:136",
                  "nodeType": "YulAssignment",
                  "src": "35176:67:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "35192:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35192:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "35195:18:136",
                            "nodeType": "YulLiteral",
                            "src": "35195:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "35188:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35188:3:136"
                        },
                        "nativeSrc": "35188:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35188:26:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "y",
                            "nativeSrc": "35220:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35220:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "35223:18:136",
                            "nodeType": "YulLiteral",
                            "src": "35223:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "35216:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35216:3:136"
                        },
                        "nativeSrc": "35216:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35216:26:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "35184:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "35184:3:136"
                    },
                    "nativeSrc": "35184:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35184:59:136"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nativeSrc": "35176:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "35176:4:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "35284:22:136",
                    "nodeType": "YulBlock",
                    "src": "35284:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "35286:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "35286:16:136"
                          },
                          "nativeSrc": "35286:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "35286:18:136"
                        },
                        "nativeSrc": "35286:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "35286:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nativeSrc": "35258:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "35258:4:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "35264:18:136",
                        "nodeType": "YulLiteral",
                        "src": "35264:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "35255:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "35255:2:136"
                    },
                    "nativeSrc": "35255:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35255:28:136"
                  },
                  "nativeSrc": "35252:54:136",
                  "nodeType": "YulIf",
                  "src": "35252:54:136"
                }
              ]
            },
            "name": "checked_sub_t_uint64",
            "nativeSrc": "35118:194:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "35148:1:136",
                "nodeType": "YulTypedName",
                "src": "35148:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "35151:1:136",
                "nodeType": "YulTypedName",
                "src": "35151:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nativeSrc": "35157:4:136",
                "nodeType": "YulTypedName",
                "src": "35157:4:136",
                "type": ""
              }
            ],
            "src": "35118:194:136"
          },
          {
            "body": {
              "nativeSrc": "35364:167:136",
              "nodeType": "YulBlock",
              "src": "35364:167:136",
              "statements": [
                {
                  "nativeSrc": "35374:47:136",
                  "nodeType": "YulAssignment",
                  "src": "35374:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "35397:1:136",
                            "nodeType": "YulLiteral",
                            "src": "35397:1:136",
                            "type": "",
                            "value": "7"
                          },
                          {
                            "name": "x",
                            "nativeSrc": "35400:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35400:1:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "35386:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "35386:10:136"
                        },
                        "nativeSrc": "35386:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35386:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "35415:1:136",
                            "nodeType": "YulLiteral",
                            "src": "35415:1:136",
                            "type": "",
                            "value": "7"
                          },
                          {
                            "name": "y",
                            "nativeSrc": "35418:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35418:1:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "35404:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "35404:10:136"
                        },
                        "nativeSrc": "35404:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35404:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "35382:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "35382:3:136"
                    },
                    "nativeSrc": "35382:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35382:39:136"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nativeSrc": "35374:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "35374:4:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "35503:22:136",
                    "nodeType": "YulBlock",
                    "src": "35503:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "35505:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "35505:16:136"
                          },
                          "nativeSrc": "35505:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "35505:18:136"
                        },
                        "nativeSrc": "35505:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "35505:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "diff",
                            "nativeSrc": "35440:4:136",
                            "nodeType": "YulIdentifier",
                            "src": "35440:4:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "35450:18:136",
                                "nodeType": "YulLiteral",
                                "src": "35450:18:136",
                                "type": "",
                                "value": "0x7fffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "35446:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "35446:3:136"
                            },
                            "nativeSrc": "35446:23:136",
                            "nodeType": "YulFunctionCall",
                            "src": "35446:23:136"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nativeSrc": "35436:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35436:3:136"
                        },
                        "nativeSrc": "35436:34:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35436:34:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "diff",
                            "nativeSrc": "35476:4:136",
                            "nodeType": "YulIdentifier",
                            "src": "35476:4:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "35482:18:136",
                            "nodeType": "YulLiteral",
                            "src": "35482:18:136",
                            "type": "",
                            "value": "0x7fffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "sgt",
                          "nativeSrc": "35472:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35472:3:136"
                        },
                        "nativeSrc": "35472:29:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35472:29:136"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nativeSrc": "35433:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "35433:2:136"
                    },
                    "nativeSrc": "35433:69:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35433:69:136"
                  },
                  "nativeSrc": "35430:95:136",
                  "nodeType": "YulIf",
                  "src": "35430:95:136"
                }
              ]
            },
            "name": "checked_sub_t_int64",
            "nativeSrc": "35317:214:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "35346:1:136",
                "nodeType": "YulTypedName",
                "src": "35346:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "35349:1:136",
                "nodeType": "YulTypedName",
                "src": "35349:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nativeSrc": "35355:4:136",
                "nodeType": "YulTypedName",
                "src": "35355:4:136",
                "type": ""
              }
            ],
            "src": "35317:214:136"
          },
          {
            "body": {
              "nativeSrc": "35578:151:136",
              "nodeType": "YulBlock",
              "src": "35578:151:136",
              "statements": [
                {
                  "nativeSrc": "35588:35:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "35588:35:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "35614:1:136",
                        "nodeType": "YulLiteral",
                        "src": "35614:1:136",
                        "type": "",
                        "value": "6"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "35617:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "35617:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "signextend",
                      "nativeSrc": "35603:10:136",
                      "nodeType": "YulIdentifier",
                      "src": "35603:10:136"
                    },
                    "nativeSrc": "35603:20:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35603:20:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "35592:7:136",
                      "nodeType": "YulTypedName",
                      "src": "35592:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "35670:22:136",
                    "nodeType": "YulBlock",
                    "src": "35670:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "35672:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "35672:16:136"
                          },
                          "nativeSrc": "35672:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "35672:18:136"
                        },
                        "nativeSrc": "35672:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "35672:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "35638:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "35638:7:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "35651:16:136",
                            "nodeType": "YulLiteral",
                            "src": "35651:16:136",
                            "type": "",
                            "value": "0x7fffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nativeSrc": "35647:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "35647:3:136"
                        },
                        "nativeSrc": "35647:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35647:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "35635:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "35635:2:136"
                    },
                    "nativeSrc": "35635:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35635:34:136"
                  },
                  "nativeSrc": "35632:60:136",
                  "nodeType": "YulIf",
                  "src": "35632:60:136"
                },
                {
                  "nativeSrc": "35701:22:136",
                  "nodeType": "YulAssignment",
                  "src": "35701:22:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "35712:1:136",
                        "nodeType": "YulLiteral",
                        "src": "35712:1:136",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "35715:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "35715:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nativeSrc": "35708:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "35708:3:136"
                    },
                    "nativeSrc": "35708:15:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35708:15:136"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "35701:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "35701:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "negate_t_int56",
            "nativeSrc": "35536:193:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "35560:5:136",
                "nodeType": "YulTypedName",
                "src": "35560:5:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "35570:3:136",
                "nodeType": "YulTypedName",
                "src": "35570:3:136",
                "type": ""
              }
            ],
            "src": "35536:193:136"
          },
          {
            "body": {
              "nativeSrc": "35784:187:136",
              "nodeType": "YulBlock",
              "src": "35784:187:136",
              "statements": [
                {
                  "nativeSrc": "35794:58:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "35794:58:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "35828:1:136",
                            "nodeType": "YulLiteral",
                            "src": "35828:1:136",
                            "type": "",
                            "value": "6"
                          },
                          {
                            "name": "x",
                            "nativeSrc": "35831:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35831:1:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "35817:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "35817:10:136"
                        },
                        "nativeSrc": "35817:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35817:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "35846:1:136",
                            "nodeType": "YulLiteral",
                            "src": "35846:1:136",
                            "type": "",
                            "value": "6"
                          },
                          {
                            "name": "y",
                            "nativeSrc": "35849:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "35849:1:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "35835:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "35835:10:136"
                        },
                        "nativeSrc": "35835:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35835:16:136"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nativeSrc": "35813:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "35813:3:136"
                    },
                    "nativeSrc": "35813:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35813:39:136"
                  },
                  "variables": [
                    {
                      "name": "product_raw",
                      "nativeSrc": "35798:11:136",
                      "nodeType": "YulTypedName",
                      "src": "35798:11:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "35861:37:136",
                  "nodeType": "YulAssignment",
                  "src": "35861:37:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "35883:1:136",
                        "nodeType": "YulLiteral",
                        "src": "35883:1:136",
                        "type": "",
                        "value": "6"
                      },
                      {
                        "name": "product_raw",
                        "nativeSrc": "35886:11:136",
                        "nodeType": "YulIdentifier",
                        "src": "35886:11:136"
                      }
                    ],
                    "functionName": {
                      "name": "signextend",
                      "nativeSrc": "35872:10:136",
                      "nodeType": "YulIdentifier",
                      "src": "35872:10:136"
                    },
                    "nativeSrc": "35872:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35872:26:136"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nativeSrc": "35861:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "35861:7:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "35943:22:136",
                    "nodeType": "YulBlock",
                    "src": "35943:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "35945:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "35945:16:136"
                          },
                          "nativeSrc": "35945:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "35945:18:136"
                        },
                        "nativeSrc": "35945:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "35945:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "product",
                            "nativeSrc": "35920:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "35920:7:136"
                          },
                          {
                            "name": "product_raw",
                            "nativeSrc": "35929:11:136",
                            "nodeType": "YulIdentifier",
                            "src": "35929:11:136"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nativeSrc": "35917:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "35917:2:136"
                        },
                        "nativeSrc": "35917:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "35917:24:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "35910:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "35910:6:136"
                    },
                    "nativeSrc": "35910:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "35910:32:136"
                  },
                  "nativeSrc": "35907:58:136",
                  "nodeType": "YulIf",
                  "src": "35907:58:136"
                }
              ]
            },
            "name": "checked_mul_t_int56",
            "nativeSrc": "35734:237:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "35763:1:136",
                "nodeType": "YulTypedName",
                "src": "35763:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "35766:1:136",
                "nodeType": "YulTypedName",
                "src": "35766:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nativeSrc": "35772:7:136",
                "nodeType": "YulTypedName",
                "src": "35772:7:136",
                "type": ""
              }
            ],
            "src": "35734:237:136"
          },
          {
            "body": {
              "nativeSrc": "36021:246:136",
              "nodeType": "YulBlock",
              "src": "36021:246:136",
              "statements": [
                {
                  "nativeSrc": "36031:37:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "36031:37:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "y",
                        "nativeSrc": "36046:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "36046:1:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "36049:18:136",
                        "nodeType": "YulLiteral",
                        "src": "36049:18:136",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "36042:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "36042:3:136"
                    },
                    "nativeSrc": "36042:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36042:26:136"
                  },
                  "variables": [
                    {
                      "name": "y_1",
                      "nativeSrc": "36035:3:136",
                      "nodeType": "YulTypedName",
                      "src": "36035:3:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "36100:111:136",
                    "nodeType": "YulBlock",
                    "src": "36100:111:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "36121:1:136",
                              "nodeType": "YulLiteral",
                              "src": "36121:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "36128:3:136",
                                  "nodeType": "YulLiteral",
                                  "src": "36128:3:136",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "36133:10:136",
                                  "nodeType": "YulLiteral",
                                  "src": "36133:10:136",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "36124:3:136",
                                "nodeType": "YulIdentifier",
                                "src": "36124:3:136"
                              },
                              "nativeSrc": "36124:20:136",
                              "nodeType": "YulFunctionCall",
                              "src": "36124:20:136"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "36114:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36114:6:136"
                          },
                          "nativeSrc": "36114:31:136",
                          "nodeType": "YulFunctionCall",
                          "src": "36114:31:136"
                        },
                        "nativeSrc": "36114:31:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "36114:31:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "36165:1:136",
                              "nodeType": "YulLiteral",
                              "src": "36165:1:136",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "36168:4:136",
                              "nodeType": "YulLiteral",
                              "src": "36168:4:136",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nativeSrc": "36158:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36158:6:136"
                          },
                          "nativeSrc": "36158:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "36158:15:136"
                        },
                        "nativeSrc": "36158:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "36158:15:136"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "36193:1:136",
                              "nodeType": "YulLiteral",
                              "src": "36193:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "36196:4:136",
                              "nodeType": "YulLiteral",
                              "src": "36196:4:136",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "36186:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36186:6:136"
                          },
                          "nativeSrc": "36186:15:136",
                          "nodeType": "YulFunctionCall",
                          "src": "36186:15:136"
                        },
                        "nativeSrc": "36186:15:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "36186:15:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y_1",
                        "nativeSrc": "36087:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "36087:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nativeSrc": "36080:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36080:6:136"
                    },
                    "nativeSrc": "36080:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36080:11:136"
                  },
                  "nativeSrc": "36077:134:136",
                  "nodeType": "YulIf",
                  "src": "36077:134:136"
                },
                {
                  "nativeSrc": "36220:41:136",
                  "nodeType": "YulAssignment",
                  "src": "36220:41:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "x",
                            "nativeSrc": "36233:1:136",
                            "nodeType": "YulIdentifier",
                            "src": "36233:1:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36236:18:136",
                            "nodeType": "YulLiteral",
                            "src": "36236:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "36229:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36229:3:136"
                        },
                        "nativeSrc": "36229:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36229:26:136"
                      },
                      {
                        "name": "y_1",
                        "nativeSrc": "36257:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "36257:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nativeSrc": "36225:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "36225:3:136"
                    },
                    "nativeSrc": "36225:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36225:36:136"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nativeSrc": "36220:1:136",
                      "nodeType": "YulIdentifier",
                      "src": "36220:1:136"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint64",
            "nativeSrc": "35976:291:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "36006:1:136",
                "nodeType": "YulTypedName",
                "src": "36006:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "36009:1:136",
                "nodeType": "YulTypedName",
                "src": "36009:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nativeSrc": "36015:1:136",
                "nodeType": "YulTypedName",
                "src": "36015:1:136",
                "type": ""
              }
            ],
            "src": "35976:291:136"
          },
          {
            "body": {
              "nativeSrc": "36540:330:136",
              "nodeType": "YulBlock",
              "src": "36540:330:136",
              "statements": [
                {
                  "nativeSrc": "36550:27:136",
                  "nodeType": "YulAssignment",
                  "src": "36550:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "36562:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "36562:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "36573:3:136",
                        "nodeType": "YulLiteral",
                        "src": "36573:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "36558:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "36558:3:136"
                    },
                    "nativeSrc": "36558:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36558:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "36550:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "36550:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "36593:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "36593:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "36608:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36608:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36616:18:136",
                            "nodeType": "YulLiteral",
                            "src": "36616:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "36604:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36604:3:136"
                        },
                        "nativeSrc": "36604:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36604:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "36586:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36586:6:136"
                    },
                    "nativeSrc": "36586:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36586:50:136"
                  },
                  "nativeSrc": "36586:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "36586:50:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "36656:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "36656:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36667:2:136",
                            "nodeType": "YulLiteral",
                            "src": "36667:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "36652:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36652:3:136"
                        },
                        "nativeSrc": "36652:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36652:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "36672:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "36672:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "36645:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36645:6:136"
                    },
                    "nativeSrc": "36645:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36645:34:136"
                  },
                  "nativeSrc": "36645:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "36645:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "36699:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "36699:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36710:2:136",
                            "nodeType": "YulLiteral",
                            "src": "36710:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "36695:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36695:3:136"
                        },
                        "nativeSrc": "36695:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36695:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "36719:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36719:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36727:18:136",
                            "nodeType": "YulLiteral",
                            "src": "36727:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "36715:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36715:3:136"
                        },
                        "nativeSrc": "36715:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36715:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "36688:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36688:6:136"
                    },
                    "nativeSrc": "36688:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36688:59:136"
                  },
                  "nativeSrc": "36688:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "36688:59:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "36767:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "36767:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36778:2:136",
                            "nodeType": "YulLiteral",
                            "src": "36778:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "36763:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36763:3:136"
                        },
                        "nativeSrc": "36763:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36763:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "36794:1:136",
                            "nodeType": "YulLiteral",
                            "src": "36794:1:136",
                            "type": "",
                            "value": "6"
                          },
                          {
                            "name": "value3",
                            "nativeSrc": "36797:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36797:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "36783:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "36783:10:136"
                        },
                        "nativeSrc": "36783:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36783:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "36756:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36756:6:136"
                    },
                    "nativeSrc": "36756:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36756:49:136"
                  },
                  "nativeSrc": "36756:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "36756:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "36825:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "36825:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "36836:3:136",
                            "nodeType": "YulLiteral",
                            "src": "36836:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "36821:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "36821:3:136"
                        },
                        "nativeSrc": "36821:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36821:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "36853:1:136",
                            "nodeType": "YulLiteral",
                            "src": "36853:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value4",
                            "nativeSrc": "36856:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "36856:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "36842:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "36842:10:136"
                        },
                        "nativeSrc": "36842:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "36842:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "36814:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "36814:6:136"
                    },
                    "nativeSrc": "36814:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "36814:50:136"
                  },
                  "nativeSrc": "36814:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "36814:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint64_t_int56_t_int8__to_t_uint64_t_bytes32_t_uint64_t_int56_t_int8__fromStack_reversed",
            "nativeSrc": "36272:598:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "36477:9:136",
                "nodeType": "YulTypedName",
                "src": "36477:9:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "36488:6:136",
                "nodeType": "YulTypedName",
                "src": "36488:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "36496:6:136",
                "nodeType": "YulTypedName",
                "src": "36496:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "36504:6:136",
                "nodeType": "YulTypedName",
                "src": "36504:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "36512:6:136",
                "nodeType": "YulTypedName",
                "src": "36512:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "36520:6:136",
                "nodeType": "YulTypedName",
                "src": "36520:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "36531:4:136",
                "nodeType": "YulTypedName",
                "src": "36531:4:136",
                "type": ""
              }
            ],
            "src": "36272:598:136"
          },
          {
            "body": {
              "nativeSrc": "37221:470:136",
              "nodeType": "YulBlock",
              "src": "37221:470:136",
              "statements": [
                {
                  "nativeSrc": "37231:27:136",
                  "nodeType": "YulAssignment",
                  "src": "37231:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "37243:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "37243:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "37254:3:136",
                        "nodeType": "YulLiteral",
                        "src": "37254:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "37239:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "37239:3:136"
                    },
                    "nativeSrc": "37239:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37239:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "37231:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "37231:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "37274:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "37274:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "37289:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37289:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "37301:3:136",
                                "nodeType": "YulLiteral",
                                "src": "37301:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "37306:10:136",
                                "nodeType": "YulLiteral",
                                "src": "37306:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "37297:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "37297:3:136"
                            },
                            "nativeSrc": "37297:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "37297:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "37285:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37285:3:136"
                        },
                        "nativeSrc": "37285:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37285:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37267:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37267:6:136"
                    },
                    "nativeSrc": "37267:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37267:52:136"
                  },
                  "nativeSrc": "37267:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37267:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37339:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37339:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37350:2:136",
                            "nodeType": "YulLiteral",
                            "src": "37350:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37335:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37335:3:136"
                        },
                        "nativeSrc": "37335:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37335:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "37359:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37359:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37367:18:136",
                            "nodeType": "YulLiteral",
                            "src": "37367:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "37355:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37355:3:136"
                        },
                        "nativeSrc": "37355:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37355:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37328:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37328:6:136"
                    },
                    "nativeSrc": "37328:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37328:59:136"
                  },
                  "nativeSrc": "37328:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37328:59:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37407:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37407:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37418:2:136",
                            "nodeType": "YulLiteral",
                            "src": "37418:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37403:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37403:3:136"
                        },
                        "nativeSrc": "37403:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37403:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "37423:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "37423:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37396:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37396:6:136"
                    },
                    "nativeSrc": "37396:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37396:34:136"
                  },
                  "nativeSrc": "37396:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37396:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37450:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37450:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37461:2:136",
                            "nodeType": "YulLiteral",
                            "src": "37461:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37446:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37446:3:136"
                        },
                        "nativeSrc": "37446:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37446:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "37470:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37470:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37478:18:136",
                            "nodeType": "YulLiteral",
                            "src": "37478:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "37466:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37466:3:136"
                        },
                        "nativeSrc": "37466:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37466:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37439:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37439:6:136"
                    },
                    "nativeSrc": "37439:59:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37439:59:136"
                  },
                  "nativeSrc": "37439:59:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37439:59:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37518:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37518:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37529:3:136",
                            "nodeType": "YulLiteral",
                            "src": "37529:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37514:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37514:3:136"
                        },
                        "nativeSrc": "37514:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37514:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "37546:1:136",
                            "nodeType": "YulLiteral",
                            "src": "37546:1:136",
                            "type": "",
                            "value": "6"
                          },
                          {
                            "name": "value4",
                            "nativeSrc": "37549:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37549:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "37535:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "37535:10:136"
                        },
                        "nativeSrc": "37535:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37535:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37507:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37507:6:136"
                    },
                    "nativeSrc": "37507:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37507:50:136"
                  },
                  "nativeSrc": "37507:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37507:50:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37577:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37577:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37588:3:136",
                            "nodeType": "YulLiteral",
                            "src": "37588:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37573:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37573:3:136"
                        },
                        "nativeSrc": "37573:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37573:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value5",
                            "nativeSrc": "37598:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37598:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37606:18:136",
                            "nodeType": "YulLiteral",
                            "src": "37606:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "37594:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37594:3:136"
                        },
                        "nativeSrc": "37594:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37594:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37566:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37566:6:136"
                    },
                    "nativeSrc": "37566:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37566:60:136"
                  },
                  "nativeSrc": "37566:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37566:60:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37646:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37646:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37657:3:136",
                            "nodeType": "YulLiteral",
                            "src": "37657:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37642:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37642:3:136"
                        },
                        "nativeSrc": "37642:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37642:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "37674:1:136",
                            "nodeType": "YulLiteral",
                            "src": "37674:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value6",
                            "nativeSrc": "37677:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "37677:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "37663:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "37663:10:136"
                        },
                        "nativeSrc": "37663:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37663:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37635:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37635:6:136"
                    },
                    "nativeSrc": "37635:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37635:50:136"
                  },
                  "nativeSrc": "37635:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37635:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint64_t_int56_t_uint64_t_int8__to_t_bytes4_t_uint64_t_bytes32_t_uint64_t_int56_t_uint64_t_int8__fromStack_reversed",
            "nativeSrc": "36875:816:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "37142:9:136",
                "nodeType": "YulTypedName",
                "src": "37142:9:136",
                "type": ""
              },
              {
                "name": "value6",
                "nativeSrc": "37153:6:136",
                "nodeType": "YulTypedName",
                "src": "37153:6:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "37161:6:136",
                "nodeType": "YulTypedName",
                "src": "37161:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "37169:6:136",
                "nodeType": "YulTypedName",
                "src": "37169:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "37177:6:136",
                "nodeType": "YulTypedName",
                "src": "37177:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "37185:6:136",
                "nodeType": "YulTypedName",
                "src": "37185:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "37193:6:136",
                "nodeType": "YulTypedName",
                "src": "37193:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "37201:6:136",
                "nodeType": "YulTypedName",
                "src": "37201:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "37212:4:136",
                "nodeType": "YulTypedName",
                "src": "37212:4:136",
                "type": ""
              }
            ],
            "src": "36875:816:136"
          },
          {
            "body": {
              "nativeSrc": "37870:174:136",
              "nodeType": "YulBlock",
              "src": "37870:174:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "37887:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "37887:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "37898:2:136",
                        "nodeType": "YulLiteral",
                        "src": "37898:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37880:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37880:6:136"
                    },
                    "nativeSrc": "37880:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37880:21:136"
                  },
                  "nativeSrc": "37880:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37880:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37921:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37921:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37932:2:136",
                            "nodeType": "YulLiteral",
                            "src": "37932:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37917:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37917:3:136"
                        },
                        "nativeSrc": "37917:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37917:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "37937:2:136",
                        "nodeType": "YulLiteral",
                        "src": "37937:2:136",
                        "type": "",
                        "value": "24"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37910:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37910:6:136"
                    },
                    "nativeSrc": "37910:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37910:30:136"
                  },
                  "nativeSrc": "37910:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37910:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "37960:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "37960:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "37971:2:136",
                            "nodeType": "YulLiteral",
                            "src": "37971:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "37956:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "37956:3:136"
                        },
                        "nativeSrc": "37956:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "37956:18:136"
                      },
                      {
                        "hexValue": "436c6f6e61626c653a206f6e6c79206f6e20636c6f6e6573",
                        "kind": "string",
                        "nativeSrc": "37976:26:136",
                        "nodeType": "YulLiteral",
                        "src": "37976:26:136",
                        "type": "",
                        "value": "Clonable: only on clones"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "37949:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "37949:6:136"
                    },
                    "nativeSrc": "37949:54:136",
                    "nodeType": "YulFunctionCall",
                    "src": "37949:54:136"
                  },
                  "nativeSrc": "37949:54:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "37949:54:136"
                },
                {
                  "nativeSrc": "38012:26:136",
                  "nodeType": "YulAssignment",
                  "src": "38012:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "38024:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "38024:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "38035:2:136",
                        "nodeType": "YulLiteral",
                        "src": "38035:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "38020:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "38020:3:136"
                    },
                    "nativeSrc": "38020:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38020:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "38012:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "38012:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_679c3eba4e7d658297efbb8047c8787b8adf0086ae8149ace5cf10d6f2df7de4__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "37696:348:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "37847:9:136",
                "nodeType": "YulTypedName",
                "src": "37847:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "37861:4:136",
                "nodeType": "YulTypedName",
                "src": "37861:4:136",
                "type": ""
              }
            ],
            "src": "37696:348:136"
          },
          {
            "body": {
              "nativeSrc": "38154:170:136",
              "nodeType": "YulBlock",
              "src": "38154:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "38200:16:136",
                    "nodeType": "YulBlock",
                    "src": "38200:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "38209:1:136",
                              "nodeType": "YulLiteral",
                              "src": "38209:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "38212:1:136",
                              "nodeType": "YulLiteral",
                              "src": "38212:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "38202:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "38202:6:136"
                          },
                          "nativeSrc": "38202:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "38202:12:136"
                        },
                        "nativeSrc": "38202:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "38202:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "38175:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "38175:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "38184:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38184:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "38171:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38171:3:136"
                        },
                        "nativeSrc": "38171:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38171:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "38196:2:136",
                        "nodeType": "YulLiteral",
                        "src": "38196:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "38167:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "38167:3:136"
                    },
                    "nativeSrc": "38167:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38167:32:136"
                  },
                  "nativeSrc": "38164:52:136",
                  "nodeType": "YulIf",
                  "src": "38164:52:136"
                },
                {
                  "nativeSrc": "38225:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "38225:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "38244:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "38244:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "38238:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "38238:5:136"
                    },
                    "nativeSrc": "38238:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38238:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "38229:5:136",
                      "nodeType": "YulTypedName",
                      "src": "38229:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "38288:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "38288:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "38263:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "38263:24:136"
                    },
                    "nativeSrc": "38263:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38263:31:136"
                  },
                  "nativeSrc": "38263:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38263:31:136"
                },
                {
                  "nativeSrc": "38303:15:136",
                  "nodeType": "YulAssignment",
                  "src": "38303:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "38313:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "38313:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "38303:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38303:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IWitPriceFeeds_$27848_fromMemory",
            "nativeSrc": "38049:275:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "38120:9:136",
                "nodeType": "YulTypedName",
                "src": "38120:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "38131:7:136",
                "nodeType": "YulTypedName",
                "src": "38131:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "38143:6:136",
                "nodeType": "YulTypedName",
                "src": "38143:6:136",
                "type": ""
              }
            ],
            "src": "38049:275:136"
          },
          {
            "body": {
              "nativeSrc": "38525:586:136",
              "nodeType": "YulBlock",
              "src": "38525:586:136",
              "statements": [
                {
                  "nativeSrc": "38535:27:136",
                  "nodeType": "YulAssignment",
                  "src": "38535:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "38547:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "38547:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "38558:3:136",
                        "nodeType": "YulLiteral",
                        "src": "38558:3:136",
                        "type": "",
                        "value": "224"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "38543:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "38543:3:136"
                    },
                    "nativeSrc": "38543:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38543:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "38535:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "38535:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "38578:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "38578:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "38593:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "38593:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "38609:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "38609:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "38614:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "38614:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "38605:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "38605:3:136"
                                },
                                "nativeSrc": "38605:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "38605:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "38618:1:136",
                                "nodeType": "YulLiteral",
                                "src": "38618:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "38601:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "38601:3:136"
                            },
                            "nativeSrc": "38601:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "38601:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "38589:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38589:3:136"
                        },
                        "nativeSrc": "38589:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38589:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "38571:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38571:6:136"
                    },
                    "nativeSrc": "38571:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38571:51:136"
                  },
                  "nativeSrc": "38571:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38571:51:136"
                },
                {
                  "nativeSrc": "38631:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "38631:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "38654:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "38654:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "38648:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "38648:5:136"
                    },
                    "nativeSrc": "38648:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38648:13:136"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nativeSrc": "38635:9:136",
                      "nodeType": "YulTypedName",
                      "src": "38635:9:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "38681:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38681:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38692:2:136",
                            "nodeType": "YulLiteral",
                            "src": "38692:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "38677:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38677:3:136"
                        },
                        "nativeSrc": "38677:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38677:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "slotValue",
                            "nativeSrc": "38701:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38701:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38712:8:136",
                            "nodeType": "YulLiteral",
                            "src": "38712:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "38697:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38697:3:136"
                        },
                        "nativeSrc": "38697:24:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38697:24:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "38670:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38670:6:136"
                    },
                    "nativeSrc": "38670:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38670:52:136"
                  },
                  "nativeSrc": "38670:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38670:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "38742:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38742:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38753:2:136",
                            "nodeType": "YulLiteral",
                            "src": "38753:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "38738:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38738:3:136"
                        },
                        "nativeSrc": "38738:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38738:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "38780:2:136",
                                        "nodeType": "YulLiteral",
                                        "src": "38780:2:136",
                                        "type": "",
                                        "value": "24"
                                      },
                                      {
                                        "name": "slotValue",
                                        "nativeSrc": "38784:9:136",
                                        "nodeType": "YulIdentifier",
                                        "src": "38784:9:136"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shr",
                                      "nativeSrc": "38776:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "38776:3:136"
                                    },
                                    "nativeSrc": "38776:18:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "38776:18:136"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "38796:4:136",
                                    "nodeType": "YulLiteral",
                                    "src": "38796:4:136",
                                    "type": "",
                                    "value": "0xff"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nativeSrc": "38772:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "38772:3:136"
                                },
                                "nativeSrc": "38772:29:136",
                                "nodeType": "YulFunctionCall",
                                "src": "38772:29:136"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nativeSrc": "38765:6:136",
                              "nodeType": "YulIdentifier",
                              "src": "38765:6:136"
                            },
                            "nativeSrc": "38765:37:136",
                            "nodeType": "YulFunctionCall",
                            "src": "38765:37:136"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nativeSrc": "38758:6:136",
                          "nodeType": "YulIdentifier",
                          "src": "38758:6:136"
                        },
                        "nativeSrc": "38758:45:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38758:45:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "38731:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38731:6:136"
                    },
                    "nativeSrc": "38731:73:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38731:73:136"
                  },
                  "nativeSrc": "38731:73:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38731:73:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "38824:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38824:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38835:2:136",
                            "nodeType": "YulLiteral",
                            "src": "38835:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "38820:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38820:3:136"
                        },
                        "nativeSrc": "38820:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38820:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "38848:2:136",
                                "nodeType": "YulLiteral",
                                "src": "38848:2:136",
                                "type": "",
                                "value": "32"
                              },
                              {
                                "name": "slotValue",
                                "nativeSrc": "38852:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "38852:9:136"
                              }
                            ],
                            "functionName": {
                              "name": "shr",
                              "nativeSrc": "38844:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "38844:3:136"
                            },
                            "nativeSrc": "38844:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "38844:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38864:8:136",
                            "nodeType": "YulLiteral",
                            "src": "38864:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "38840:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38840:3:136"
                        },
                        "nativeSrc": "38840:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38840:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "38813:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38813:6:136"
                    },
                    "nativeSrc": "38813:61:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38813:61:136"
                  },
                  "nativeSrc": "38813:61:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38813:61:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "38894:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "38894:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38905:3:136",
                            "nodeType": "YulLiteral",
                            "src": "38905:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "38890:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38890:3:136"
                        },
                        "nativeSrc": "38890:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38890:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "38919:2:136",
                                "nodeType": "YulLiteral",
                                "src": "38919:2:136",
                                "type": "",
                                "value": "56"
                              },
                              {
                                "name": "slotValue",
                                "nativeSrc": "38923:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "38923:9:136"
                              }
                            ],
                            "functionName": {
                              "name": "shr",
                              "nativeSrc": "38915:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "38915:3:136"
                            },
                            "nativeSrc": "38915:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "38915:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38935:8:136",
                            "nodeType": "YulLiteral",
                            "src": "38935:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "38911:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38911:3:136"
                        },
                        "nativeSrc": "38911:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38911:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "38883:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "38883:6:136"
                    },
                    "nativeSrc": "38883:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38883:62:136"
                  },
                  "nativeSrc": "38883:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38883:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "38980:2:136",
                                "nodeType": "YulLiteral",
                                "src": "38980:2:136",
                                "type": "",
                                "value": "80"
                              },
                              {
                                "name": "slotValue",
                                "nativeSrc": "38984:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "38984:9:136"
                              }
                            ],
                            "functionName": {
                              "name": "shr",
                              "nativeSrc": "38976:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "38976:3:136"
                            },
                            "nativeSrc": "38976:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "38976:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "38996:6:136",
                            "nodeType": "YulLiteral",
                            "src": "38996:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "38972:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "38972:3:136"
                        },
                        "nativeSrc": "38972:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "38972:31:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "39009:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39009:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39020:3:136",
                            "nodeType": "YulLiteral",
                            "src": "39020:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "39005:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39005:3:136"
                        },
                        "nativeSrc": "39005:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39005:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_uint16",
                      "nativeSrc": "38954:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "38954:17:136"
                    },
                    "nativeSrc": "38954:71:136",
                    "nodeType": "YulFunctionCall",
                    "src": "38954:71:136"
                  },
                  "nativeSrc": "38954:71:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "38954:71:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "39060:2:136",
                                "nodeType": "YulLiteral",
                                "src": "39060:2:136",
                                "type": "",
                                "value": "96"
                              },
                              {
                                "name": "slotValue",
                                "nativeSrc": "39064:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "39064:9:136"
                              }
                            ],
                            "functionName": {
                              "name": "shr",
                              "nativeSrc": "39056:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "39056:3:136"
                            },
                            "nativeSrc": "39056:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "39056:18:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39076:6:136",
                            "nodeType": "YulLiteral",
                            "src": "39076:6:136",
                            "type": "",
                            "value": "0xffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "39052:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39052:3:136"
                        },
                        "nativeSrc": "39052:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39052:31:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "39089:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39089:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39100:3:136",
                            "nodeType": "YulLiteral",
                            "src": "39100:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "39085:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39085:3:136"
                        },
                        "nativeSrc": "39085:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39085:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_uint16",
                      "nativeSrc": "39034:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "39034:17:136"
                    },
                    "nativeSrc": "39034:71:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39034:71:136"
                  },
                  "nativeSrc": "39034:71:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39034:71:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_struct$_UpdateConditions_$28153_storage__to_t_address_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed",
            "nativeSrc": "38329:782:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "38486:9:136",
                "nodeType": "YulTypedName",
                "src": "38486:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "38497:6:136",
                "nodeType": "YulTypedName",
                "src": "38497:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "38505:6:136",
                "nodeType": "YulTypedName",
                "src": "38505:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "38516:4:136",
                "nodeType": "YulTypedName",
                "src": "38516:4:136",
                "type": ""
              }
            ],
            "src": "38329:782:136"
          },
          {
            "body": {
              "nativeSrc": "39197:170:136",
              "nodeType": "YulBlock",
              "src": "39197:170:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "39243:16:136",
                    "nodeType": "YulBlock",
                    "src": "39243:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "39252:1:136",
                              "nodeType": "YulLiteral",
                              "src": "39252:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "39255:1:136",
                              "nodeType": "YulLiteral",
                              "src": "39255:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "39245:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "39245:6:136"
                          },
                          "nativeSrc": "39245:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "39245:12:136"
                        },
                        "nativeSrc": "39245:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "39245:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "39218:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "39218:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "39227:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39227:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "39214:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39214:3:136"
                        },
                        "nativeSrc": "39214:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39214:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "39239:2:136",
                        "nodeType": "YulLiteral",
                        "src": "39239:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "39210:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "39210:3:136"
                    },
                    "nativeSrc": "39210:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39210:32:136"
                  },
                  "nativeSrc": "39207:52:136",
                  "nodeType": "YulIf",
                  "src": "39207:52:136"
                },
                {
                  "nativeSrc": "39268:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39268:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "39287:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "39287:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "39281:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "39281:5:136"
                    },
                    "nativeSrc": "39281:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39281:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "39272:5:136",
                      "nodeType": "YulTypedName",
                      "src": "39272:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "39331:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "39331:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nativeSrc": "39306:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "39306:24:136"
                    },
                    "nativeSrc": "39306:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39306:31:136"
                  },
                  "nativeSrc": "39306:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39306:31:136"
                },
                {
                  "nativeSrc": "39346:15:136",
                  "nodeType": "YulAssignment",
                  "src": "39346:15:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "39356:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "39356:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "39346:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "39346:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_fromMemory",
            "nativeSrc": "39116:251:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "39163:9:136",
                "nodeType": "YulTypedName",
                "src": "39163:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "39174:7:136",
                "nodeType": "YulTypedName",
                "src": "39174:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "39186:6:136",
                "nodeType": "YulTypedName",
                "src": "39186:6:136",
                "type": ""
              }
            ],
            "src": "39116:251:136"
          },
          {
            "body": {
              "nativeSrc": "39477:943:136",
              "nodeType": "YulBlock",
              "src": "39477:943:136",
              "statements": [
                {
                  "nativeSrc": "39487:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39487:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "39505:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "39505:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "39514:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39514:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "39501:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39501:3:136"
                        },
                        "nativeSrc": "39501:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39501:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "39526:3:136",
                        "nodeType": "YulLiteral",
                        "src": "39526:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "39497:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "39497:3:136"
                    },
                    "nativeSrc": "39497:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39497:33:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "39491:2:136",
                      "nodeType": "YulTypedName",
                      "src": "39491:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "39545:16:136",
                    "nodeType": "YulBlock",
                    "src": "39545:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "39554:1:136",
                              "nodeType": "YulLiteral",
                              "src": "39554:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "39557:1:136",
                              "nodeType": "YulLiteral",
                              "src": "39557:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "39547:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "39547:6:136"
                          },
                          "nativeSrc": "39547:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "39547:12:136"
                        },
                        "nativeSrc": "39547:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "39547:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "name": "_1",
                    "nativeSrc": "39542:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "39542:2:136"
                  },
                  "nativeSrc": "39539:22:136",
                  "nodeType": "YulIf",
                  "src": "39539:22:136"
                },
                {
                  "nativeSrc": "39570:7:136",
                  "nodeType": "YulAssignment",
                  "src": "39570:7:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "39576:1:136",
                    "nodeType": "YulLiteral",
                    "src": "39576:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variableNames": [
                    {
                      "name": "_1",
                      "nativeSrc": "39570:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "39570:2:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "39586:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39586:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "39606:2:136",
                        "nodeType": "YulLiteral",
                        "src": "39606:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "39600:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "39600:5:136"
                    },
                    "nativeSrc": "39600:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39600:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "39590:6:136",
                      "nodeType": "YulTypedName",
                      "src": "39590:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "39643:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "39643:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation_6165",
                      "nativeSrc": "39618:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "39618:24:136"
                    },
                    "nativeSrc": "39618:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39618:32:136"
                  },
                  "nativeSrc": "39618:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39618:32:136"
                },
                {
                  "nativeSrc": "39659:36:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39659:36:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "39685:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "39685:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "39672:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "39672:12:136"
                    },
                    "nativeSrc": "39672:23:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39672:23:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "39663:5:136",
                      "nodeType": "YulTypedName",
                      "src": "39663:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "39728:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "39728:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "39704:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "39704:23:136"
                    },
                    "nativeSrc": "39704:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39704:30:136"
                  },
                  "nativeSrc": "39704:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39704:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "39750:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "39750:6:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "39758:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "39758:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "39743:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "39743:6:136"
                    },
                    "nativeSrc": "39743:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39743:21:136"
                  },
                  "nativeSrc": "39743:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39743:21:136"
                },
                {
                  "nativeSrc": "39773:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39773:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "39805:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39805:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39816:2:136",
                            "nodeType": "YulLiteral",
                            "src": "39816:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "39801:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39801:3:136"
                        },
                        "nativeSrc": "39801:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39801:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "39788:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "39788:12:136"
                    },
                    "nativeSrc": "39788:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39788:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "39777:7:136",
                      "nodeType": "YulTypedName",
                      "src": "39777:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "39851:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "39851:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nativeSrc": "39829:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "39829:21:136"
                    },
                    "nativeSrc": "39829:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39829:30:136"
                  },
                  "nativeSrc": "39829:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39829:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "39879:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "39879:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39887:2:136",
                            "nodeType": "YulLiteral",
                            "src": "39887:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "39875:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39875:3:136"
                        },
                        "nativeSrc": "39875:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39875:15:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "39892:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "39892:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "39868:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "39868:6:136"
                    },
                    "nativeSrc": "39868:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39868:32:136"
                  },
                  "nativeSrc": "39868:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39868:32:136"
                },
                {
                  "nativeSrc": "39909:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "39909:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "39941:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "39941:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "39952:2:136",
                            "nodeType": "YulLiteral",
                            "src": "39952:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "39937:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "39937:3:136"
                        },
                        "nativeSrc": "39937:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "39937:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "39924:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "39924:12:136"
                    },
                    "nativeSrc": "39924:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39924:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "39913:7:136",
                      "nodeType": "YulTypedName",
                      "src": "39913:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "39989:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "39989:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "39965:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "39965:23:136"
                    },
                    "nativeSrc": "39965:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "39965:32:136"
                  },
                  "nativeSrc": "39965:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "39965:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "40017:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "40017:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40025:2:136",
                            "nodeType": "YulLiteral",
                            "src": "40025:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40013:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40013:3:136"
                        },
                        "nativeSrc": "40013:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40013:15:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "40030:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "40030:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "40006:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40006:6:136"
                    },
                    "nativeSrc": "40006:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40006:32:136"
                  },
                  "nativeSrc": "40006:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40006:32:136"
                },
                {
                  "nativeSrc": "40047:47:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "40047:47:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "40079:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "40079:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40090:2:136",
                            "nodeType": "YulLiteral",
                            "src": "40090:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40075:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40075:3:136"
                        },
                        "nativeSrc": "40075:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40075:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "40062:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "40062:12:136"
                    },
                    "nativeSrc": "40062:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40062:32:136"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "40051:7:136",
                      "nodeType": "YulTypedName",
                      "src": "40051:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_3",
                        "nativeSrc": "40127:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "40127:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "40103:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "40103:23:136"
                    },
                    "nativeSrc": "40103:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40103:32:136"
                  },
                  "nativeSrc": "40103:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40103:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "40155:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "40155:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40163:2:136",
                            "nodeType": "YulLiteral",
                            "src": "40163:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40151:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40151:3:136"
                        },
                        "nativeSrc": "40151:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40151:15:136"
                      },
                      {
                        "name": "value_3",
                        "nativeSrc": "40168:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "40168:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "40144:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40144:6:136"
                    },
                    "nativeSrc": "40144:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40144:32:136"
                  },
                  "nativeSrc": "40144:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40144:32:136"
                },
                {
                  "nativeSrc": "40185:48:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "40185:48:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "40217:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "40217:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40228:3:136",
                            "nodeType": "YulLiteral",
                            "src": "40228:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40213:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40213:3:136"
                        },
                        "nativeSrc": "40213:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40213:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "40200:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "40200:12:136"
                    },
                    "nativeSrc": "40200:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40200:33:136"
                  },
                  "variables": [
                    {
                      "name": "value_4",
                      "nativeSrc": "40189:7:136",
                      "nodeType": "YulTypedName",
                      "src": "40189:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_4",
                        "nativeSrc": "40266:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "40266:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "40242:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "40242:23:136"
                    },
                    "nativeSrc": "40242:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40242:32:136"
                  },
                  "nativeSrc": "40242:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40242:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "40294:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "40294:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40302:3:136",
                            "nodeType": "YulLiteral",
                            "src": "40302:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40290:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40290:3:136"
                        },
                        "nativeSrc": "40290:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40290:16:136"
                      },
                      {
                        "name": "value_4",
                        "nativeSrc": "40308:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "40308:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "40283:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40283:6:136"
                    },
                    "nativeSrc": "40283:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40283:33:136"
                  },
                  "nativeSrc": "40283:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40283:33:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "40336:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "40336:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "40344:3:136",
                            "nodeType": "YulLiteral",
                            "src": "40344:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "40332:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "40332:3:136"
                        },
                        "nativeSrc": "40332:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40332:16:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "40372:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "40372:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "40383:3:136",
                                "nodeType": "YulLiteral",
                                "src": "40383:3:136",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "40368:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "40368:3:136"
                            },
                            "nativeSrc": "40368:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "40368:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_uint16",
                          "nativeSrc": "40350:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "40350:17:136"
                        },
                        "nativeSrc": "40350:38:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40350:38:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "40325:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40325:6:136"
                    },
                    "nativeSrc": "40325:64:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40325:64:136"
                  },
                  "nativeSrc": "40325:64:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40325:64:136"
                },
                {
                  "nativeSrc": "40398:16:136",
                  "nodeType": "YulAssignment",
                  "src": "40398:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "40408:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "40408:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "40398:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40398:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_UpdateConditions_$28153_memory_ptr",
            "nativeSrc": "39372:1048:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "39443:9:136",
                "nodeType": "YulTypedName",
                "src": "39443:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "39454:7:136",
                "nodeType": "YulTypedName",
                "src": "39454:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "39466:6:136",
                "nodeType": "YulTypedName",
                "src": "39466:6:136",
                "type": ""
              }
            ],
            "src": "39372:1048:136"
          },
          {
            "body": {
              "nativeSrc": "40485:114:136",
              "nodeType": "YulBlock",
              "src": "40485:114:136",
              "statements": [
                {
                  "nativeSrc": "40495:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "40495:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr",
                        "nativeSrc": "40521:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "40521:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "40508:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "40508:12:136"
                    },
                    "nativeSrc": "40508:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40508:17:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "40499:5:136",
                      "nodeType": "YulTypedName",
                      "src": "40499:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "40558:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "40558:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "40534:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "40534:23:136"
                    },
                    "nativeSrc": "40534:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40534:30:136"
                  },
                  "nativeSrc": "40534:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40534:30:136"
                },
                {
                  "nativeSrc": "40573:20:136",
                  "nodeType": "YulAssignment",
                  "src": "40573:20:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "40588:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "40588:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "returnValue",
                      "nativeSrc": "40573:11:136",
                      "nodeType": "YulIdentifier",
                      "src": "40573:11:136"
                    }
                  ]
                }
              ]
            },
            "name": "read_from_calldatat_uint24",
            "nativeSrc": "40425:174:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nativeSrc": "40461:3:136",
                "nodeType": "YulTypedName",
                "src": "40461:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "returnValue",
                "nativeSrc": "40469:11:136",
                "nodeType": "YulTypedName",
                "src": "40469:11:136",
                "type": ""
              }
            ],
            "src": "40425:174:136"
          },
          {
            "body": {
              "nativeSrc": "40675:145:136",
              "nodeType": "YulBlock",
              "src": "40675:145:136",
              "statements": [
                {
                  "nativeSrc": "40685:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "40685:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "40701:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "40701:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "40695:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "40695:5:136"
                    },
                    "nativeSrc": "40695:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40695:11:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "40689:2:136",
                      "nodeType": "YulTypedName",
                      "src": "40689:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "40722:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "40722:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "40735:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "40735:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "40743:22:136",
                                    "nodeType": "YulLiteral",
                                    "src": "40743:22:136",
                                    "type": "",
                                    "value": "0xffffff00000000000000"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "40739:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "40739:3:136"
                                },
                                "nativeSrc": "40739:27:136",
                                "nodeType": "YulFunctionCall",
                                "src": "40739:27:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "40731:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "40731:3:136"
                            },
                            "nativeSrc": "40731:36:136",
                            "nodeType": "YulFunctionCall",
                            "src": "40731:36:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "40777:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "40777:2:136",
                                    "type": "",
                                    "value": "56"
                                  },
                                  {
                                    "name": "value",
                                    "nativeSrc": "40781:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "40781:5:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "40773:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "40773:3:136"
                                },
                                "nativeSrc": "40773:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "40773:14:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "40789:22:136",
                                "nodeType": "YulLiteral",
                                "src": "40789:22:136",
                                "type": "",
                                "value": "0xffffff00000000000000"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "40769:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "40769:3:136"
                            },
                            "nativeSrc": "40769:43:136",
                            "nodeType": "YulFunctionCall",
                            "src": "40769:43:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "40728:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "40728:2:136"
                        },
                        "nativeSrc": "40728:85:136",
                        "nodeType": "YulFunctionCall",
                        "src": "40728:85:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "40715:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "40715:6:136"
                    },
                    "nativeSrc": "40715:99:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40715:99:136"
                  },
                  "nativeSrc": "40715:99:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40715:99:136"
                }
              ]
            },
            "name": "update_storage_value_offset_uint24_to_uint24",
            "nativeSrc": "40604:216:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nativeSrc": "40658:4:136",
                "nodeType": "YulTypedName",
                "src": "40658:4:136",
                "type": ""
              },
              {
                "name": "value",
                "nativeSrc": "40664:5:136",
                "nodeType": "YulTypedName",
                "src": "40664:5:136",
                "type": ""
              }
            ],
            "src": "40604:216:136"
          },
          {
            "body": {
              "nativeSrc": "40885:114:136",
              "nodeType": "YulBlock",
              "src": "40885:114:136",
              "statements": [
                {
                  "nativeSrc": "40895:30:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "40895:30:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr",
                        "nativeSrc": "40921:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "40921:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "40908:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "40908:12:136"
                    },
                    "nativeSrc": "40908:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40908:17:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "40899:5:136",
                      "nodeType": "YulTypedName",
                      "src": "40899:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "40958:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "40958:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint16",
                      "nativeSrc": "40934:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "40934:23:136"
                    },
                    "nativeSrc": "40934:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "40934:30:136"
                  },
                  "nativeSrc": "40934:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "40934:30:136"
                },
                {
                  "nativeSrc": "40973:20:136",
                  "nodeType": "YulAssignment",
                  "src": "40973:20:136",
                  "value": {
                    "name": "value",
                    "nativeSrc": "40988:5:136",
                    "nodeType": "YulIdentifier",
                    "src": "40988:5:136"
                  },
                  "variableNames": [
                    {
                      "name": "returnValue",
                      "nativeSrc": "40973:11:136",
                      "nodeType": "YulIdentifier",
                      "src": "40973:11:136"
                    }
                  ]
                }
              ]
            },
            "name": "read_from_calldatat_uint16",
            "nativeSrc": "40825:174:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nativeSrc": "40861:3:136",
                "nodeType": "YulTypedName",
                "src": "40861:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "returnValue",
                "nativeSrc": "40869:11:136",
                "nodeType": "YulTypedName",
                "src": "40869:11:136",
                "type": ""
              }
            ],
            "src": "40825:174:136"
          },
          {
            "body": {
              "nativeSrc": "41075:129:136",
              "nodeType": "YulBlock",
              "src": "41075:129:136",
              "statements": [
                {
                  "nativeSrc": "41085:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41085:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41101:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41101:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "41095:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "41095:5:136"
                    },
                    "nativeSrc": "41095:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41095:11:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "41089:2:136",
                      "nodeType": "YulTypedName",
                      "src": "41089:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41122:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41122:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "41135:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "41135:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "41147:2:136",
                                        "nodeType": "YulLiteral",
                                        "src": "41147:2:136",
                                        "type": "",
                                        "value": "80"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "41151:5:136",
                                        "nodeType": "YulLiteral",
                                        "src": "41151:5:136",
                                        "type": "",
                                        "value": "65535"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "41143:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "41143:3:136"
                                    },
                                    "nativeSrc": "41143:14:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "41143:14:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "41139:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41139:3:136"
                                },
                                "nativeSrc": "41139:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41139:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41131:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41131:3:136"
                            },
                            "nativeSrc": "41131:28:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41131:28:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41169:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41169:2:136",
                                    "type": "",
                                    "value": "80"
                                  },
                                  {
                                    "name": "value",
                                    "nativeSrc": "41173:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "41173:5:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "41165:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41165:3:136"
                                },
                                "nativeSrc": "41165:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41165:14:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41185:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41185:2:136",
                                    "type": "",
                                    "value": "80"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41189:5:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41189:5:136",
                                    "type": "",
                                    "value": "65535"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "41181:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41181:3:136"
                                },
                                "nativeSrc": "41181:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41181:14:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41161:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41161:3:136"
                            },
                            "nativeSrc": "41161:35:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41161:35:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "41128:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "41128:2:136"
                        },
                        "nativeSrc": "41128:69:136",
                        "nodeType": "YulFunctionCall",
                        "src": "41128:69:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "41115:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "41115:6:136"
                    },
                    "nativeSrc": "41115:83:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41115:83:136"
                  },
                  "nativeSrc": "41115:83:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41115:83:136"
                }
              ]
            },
            "name": "update_storage_value_offset_uint16_to_uint16",
            "nativeSrc": "41004:200:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nativeSrc": "41058:4:136",
                "nodeType": "YulTypedName",
                "src": "41058:4:136",
                "type": ""
              },
              {
                "name": "value",
                "nativeSrc": "41064:5:136",
                "nodeType": "YulTypedName",
                "src": "41064:5:136",
                "type": ""
              }
            ],
            "src": "41004:200:136"
          },
          {
            "body": {
              "nativeSrc": "41284:129:136",
              "nodeType": "YulBlock",
              "src": "41284:129:136",
              "statements": [
                {
                  "nativeSrc": "41294:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41294:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41310:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41310:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "41304:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "41304:5:136"
                    },
                    "nativeSrc": "41304:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41304:11:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "41298:2:136",
                      "nodeType": "YulTypedName",
                      "src": "41298:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41331:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41331:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nativeSrc": "41344:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "41344:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "41356:2:136",
                                        "nodeType": "YulLiteral",
                                        "src": "41356:2:136",
                                        "type": "",
                                        "value": "96"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "41360:5:136",
                                        "nodeType": "YulLiteral",
                                        "src": "41360:5:136",
                                        "type": "",
                                        "value": "65535"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nativeSrc": "41352:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "41352:3:136"
                                    },
                                    "nativeSrc": "41352:14:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "41352:14:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "41348:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41348:3:136"
                                },
                                "nativeSrc": "41348:19:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41348:19:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41340:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41340:3:136"
                            },
                            "nativeSrc": "41340:28:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41340:28:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41378:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41378:2:136",
                                    "type": "",
                                    "value": "96"
                                  },
                                  {
                                    "name": "value",
                                    "nativeSrc": "41382:5:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "41382:5:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "41374:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41374:3:136"
                                },
                                "nativeSrc": "41374:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41374:14:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41394:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41394:2:136",
                                    "type": "",
                                    "value": "96"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41398:5:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41398:5:136",
                                    "type": "",
                                    "value": "65535"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "41390:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41390:3:136"
                                },
                                "nativeSrc": "41390:14:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41390:14:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41370:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41370:3:136"
                            },
                            "nativeSrc": "41370:35:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41370:35:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "41337:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "41337:2:136"
                        },
                        "nativeSrc": "41337:69:136",
                        "nodeType": "YulFunctionCall",
                        "src": "41337:69:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "41324:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "41324:6:136"
                    },
                    "nativeSrc": "41324:83:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41324:83:136"
                  },
                  "nativeSrc": "41324:83:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41324:83:136"
                }
              ]
            },
            "name": "update_storage_value_offset_t_uint16_to_t_uint16",
            "nativeSrc": "41209:204:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nativeSrc": "41267:4:136",
                "nodeType": "YulTypedName",
                "src": "41267:4:136",
                "type": ""
              },
              {
                "name": "value",
                "nativeSrc": "41273:5:136",
                "nodeType": "YulTypedName",
                "src": "41273:5:136",
                "type": ""
              }
            ],
            "src": "41209:204:136"
          },
          {
            "body": {
              "nativeSrc": "41566:1012:136",
              "nodeType": "YulBlock",
              "src": "41566:1012:136",
              "statements": [
                {
                  "nativeSrc": "41576:34:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41576:34:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "41604:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "41604:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "41591:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "41591:12:136"
                    },
                    "nativeSrc": "41591:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41591:19:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "41580:7:136",
                      "nodeType": "YulTypedName",
                      "src": "41580:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "41643:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "41643:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "41619:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "41619:23:136"
                    },
                    "nativeSrc": "41619:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41619:32:136"
                  },
                  "nativeSrc": "41619:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41619:32:136"
                },
                {
                  "nativeSrc": "41660:32:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41660:32:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "41674:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "41674:7:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "41683:8:136",
                        "nodeType": "YulLiteral",
                        "src": "41683:8:136",
                        "type": "",
                        "value": "0xffffff"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nativeSrc": "41670:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "41670:3:136"
                    },
                    "nativeSrc": "41670:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41670:22:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "41664:2:136",
                      "nodeType": "YulTypedName",
                      "src": "41664:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "41701:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41701:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41717:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41717:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "41711:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "41711:5:136"
                    },
                    "nativeSrc": "41711:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41711:11:136"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nativeSrc": "41705:2:136",
                      "nodeType": "YulTypedName",
                      "src": "41705:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41738:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41738:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nativeSrc": "41751:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "41751:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41759:8:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41759:8:136",
                                    "type": "",
                                    "value": "16777215"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "41755:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41755:3:136"
                                },
                                "nativeSrc": "41755:13:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41755:13:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41747:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41747:3:136"
                            },
                            "nativeSrc": "41747:22:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41747:22:136"
                          },
                          {
                            "name": "_1",
                            "nativeSrc": "41771:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "41771:2:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "41744:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "41744:2:136"
                        },
                        "nativeSrc": "41744:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "41744:30:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "41731:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "41731:6:136"
                    },
                    "nativeSrc": "41731:44:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41731:44:136"
                  },
                  "nativeSrc": "41731:44:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41731:44:136"
                },
                {
                  "nativeSrc": "41784:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41784:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "41816:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "41816:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "41823:2:136",
                            "nodeType": "YulLiteral",
                            "src": "41823:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "41812:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "41812:3:136"
                        },
                        "nativeSrc": "41812:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "41812:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "41799:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "41799:12:136"
                    },
                    "nativeSrc": "41799:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41799:28:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "41788:7:136",
                      "nodeType": "YulTypedName",
                      "src": "41788:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "41858:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "41858:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nativeSrc": "41836:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "41836:21:136"
                    },
                    "nativeSrc": "41836:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41836:30:136"
                  },
                  "nativeSrc": "41836:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41836:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "41882:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "41882:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "_2",
                                    "nativeSrc": "41898:2:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "41898:2:136"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nativeSrc": "41906:10:136",
                                        "nodeType": "YulLiteral",
                                        "src": "41906:10:136",
                                        "type": "",
                                        "value": "0xffffffff"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nativeSrc": "41902:3:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "41902:3:136"
                                    },
                                    "nativeSrc": "41902:15:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "41902:15:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nativeSrc": "41894:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41894:3:136"
                                },
                                "nativeSrc": "41894:24:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41894:24:136"
                              },
                              {
                                "name": "_1",
                                "nativeSrc": "41920:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "41920:2:136"
                              }
                            ],
                            "functionName": {
                              "name": "or",
                              "nativeSrc": "41891:2:136",
                              "nodeType": "YulIdentifier",
                              "src": "41891:2:136"
                            },
                            "nativeSrc": "41891:32:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41891:32:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "41933:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "41933:2:136",
                                    "type": "",
                                    "value": "24"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "value_2",
                                            "nativeSrc": "41951:7:136",
                                            "nodeType": "YulIdentifier",
                                            "src": "41951:7:136"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "iszero",
                                          "nativeSrc": "41944:6:136",
                                          "nodeType": "YulIdentifier",
                                          "src": "41944:6:136"
                                        },
                                        "nativeSrc": "41944:15:136",
                                        "nodeType": "YulFunctionCall",
                                        "src": "41944:15:136"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "iszero",
                                      "nativeSrc": "41937:6:136",
                                      "nodeType": "YulIdentifier",
                                      "src": "41937:6:136"
                                    },
                                    "nativeSrc": "41937:23:136",
                                    "nodeType": "YulFunctionCall",
                                    "src": "41937:23:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "41929:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "41929:3:136"
                                },
                                "nativeSrc": "41929:32:136",
                                "nodeType": "YulFunctionCall",
                                "src": "41929:32:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "41963:10:136",
                                "nodeType": "YulLiteral",
                                "src": "41963:10:136",
                                "type": "",
                                "value": "0xff000000"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "41925:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "41925:3:136"
                            },
                            "nativeSrc": "41925:49:136",
                            "nodeType": "YulFunctionCall",
                            "src": "41925:49:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "41888:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "41888:2:136"
                        },
                        "nativeSrc": "41888:87:136",
                        "nodeType": "YulFunctionCall",
                        "src": "41888:87:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "41875:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "41875:6:136"
                    },
                    "nativeSrc": "41875:101:136",
                    "nodeType": "YulFunctionCall",
                    "src": "41875:101:136"
                  },
                  "nativeSrc": "41875:101:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "41875:101:136"
                },
                {
                  "nativeSrc": "41985:20:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "41985:20:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "42004:1:136",
                    "nodeType": "YulLiteral",
                    "src": "42004:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "returnValue",
                      "nativeSrc": "41989:11:136",
                      "nodeType": "YulTypedName",
                      "src": "41989:11:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "42014:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "42014:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "42046:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "42046:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "42053:2:136",
                            "nodeType": "YulLiteral",
                            "src": "42053:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "42042:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "42042:3:136"
                        },
                        "nativeSrc": "42042:14:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42042:14:136"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nativeSrc": "42029:12:136",
                      "nodeType": "YulIdentifier",
                      "src": "42029:12:136"
                    },
                    "nativeSrc": "42029:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42029:28:136"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "42018:7:136",
                      "nodeType": "YulTypedName",
                      "src": "42018:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_3",
                        "nativeSrc": "42090:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "42090:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint24",
                      "nativeSrc": "42066:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "42066:23:136"
                    },
                    "nativeSrc": "42066:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42066:32:136"
                  },
                  "nativeSrc": "42066:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42066:32:136"
                },
                {
                  "nativeSrc": "42107:22:136",
                  "nodeType": "YulAssignment",
                  "src": "42107:22:136",
                  "value": {
                    "name": "value_3",
                    "nativeSrc": "42122:7:136",
                    "nodeType": "YulIdentifier",
                    "src": "42122:7:136"
                  },
                  "variableNames": [
                    {
                      "name": "returnValue",
                      "nativeSrc": "42107:11:136",
                      "nodeType": "YulIdentifier",
                      "src": "42107:11:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "42138:21:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "42138:21:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "42154:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "42154:4:136"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nativeSrc": "42148:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "42148:5:136"
                    },
                    "nativeSrc": "42148:11:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42148:11:136"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nativeSrc": "42142:2:136",
                      "nodeType": "YulTypedName",
                      "src": "42142:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "42175:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "42175:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nativeSrc": "42188:2:136",
                                "nodeType": "YulIdentifier",
                                "src": "42188:2:136"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "42196:16:136",
                                    "nodeType": "YulLiteral",
                                    "src": "42196:16:136",
                                    "type": "",
                                    "value": "0xffffff00000000"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nativeSrc": "42192:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "42192:3:136"
                                },
                                "nativeSrc": "42192:21:136",
                                "nodeType": "YulFunctionCall",
                                "src": "42192:21:136"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "42184:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "42184:3:136"
                            },
                            "nativeSrc": "42184:30:136",
                            "nodeType": "YulFunctionCall",
                            "src": "42184:30:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "42224:2:136",
                                    "nodeType": "YulLiteral",
                                    "src": "42224:2:136",
                                    "type": "",
                                    "value": "32"
                                  },
                                  {
                                    "name": "value_3",
                                    "nativeSrc": "42228:7:136",
                                    "nodeType": "YulIdentifier",
                                    "src": "42228:7:136"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "42220:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "42220:3:136"
                                },
                                "nativeSrc": "42220:16:136",
                                "nodeType": "YulFunctionCall",
                                "src": "42220:16:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "42238:16:136",
                                "nodeType": "YulLiteral",
                                "src": "42238:16:136",
                                "type": "",
                                "value": "0xffffff00000000"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nativeSrc": "42216:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "42216:3:136"
                            },
                            "nativeSrc": "42216:39:136",
                            "nodeType": "YulFunctionCall",
                            "src": "42216:39:136"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nativeSrc": "42181:2:136",
                          "nodeType": "YulIdentifier",
                          "src": "42181:2:136"
                        },
                        "nativeSrc": "42181:75:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42181:75:136"
                      }
                    ],
                    "functionName": {
                      "name": "sstore",
                      "nativeSrc": "42168:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "42168:6:136"
                    },
                    "nativeSrc": "42168:89:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42168:89:136"
                  },
                  "nativeSrc": "42168:89:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42168:89:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "42311:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "42311:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "42348:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "42348:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "42355:2:136",
                                "nodeType": "YulLiteral",
                                "src": "42355:2:136",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "42344:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "42344:3:136"
                            },
                            "nativeSrc": "42344:14:136",
                            "nodeType": "YulFunctionCall",
                            "src": "42344:14:136"
                          }
                        ],
                        "functionName": {
                          "name": "read_from_calldatat_uint24",
                          "nativeSrc": "42317:26:136",
                          "nodeType": "YulIdentifier",
                          "src": "42317:26:136"
                        },
                        "nativeSrc": "42317:42:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42317:42:136"
                      }
                    ],
                    "functionName": {
                      "name": "update_storage_value_offset_uint24_to_uint24",
                      "nativeSrc": "42266:44:136",
                      "nodeType": "YulIdentifier",
                      "src": "42266:44:136"
                    },
                    "nativeSrc": "42266:94:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42266:94:136"
                  },
                  "nativeSrc": "42266:94:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42266:94:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "42414:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "42414:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "42451:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "42451:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "42458:3:136",
                                "nodeType": "YulLiteral",
                                "src": "42458:3:136",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "42447:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "42447:3:136"
                            },
                            "nativeSrc": "42447:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "42447:15:136"
                          }
                        ],
                        "functionName": {
                          "name": "read_from_calldatat_uint16",
                          "nativeSrc": "42420:26:136",
                          "nodeType": "YulIdentifier",
                          "src": "42420:26:136"
                        },
                        "nativeSrc": "42420:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42420:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "update_storage_value_offset_uint16_to_uint16",
                      "nativeSrc": "42369:44:136",
                      "nodeType": "YulIdentifier",
                      "src": "42369:44:136"
                    },
                    "nativeSrc": "42369:95:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42369:95:136"
                  },
                  "nativeSrc": "42369:95:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42369:95:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nativeSrc": "42522:4:136",
                        "nodeType": "YulIdentifier",
                        "src": "42522:4:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nativeSrc": "42559:5:136",
                                "nodeType": "YulIdentifier",
                                "src": "42559:5:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "42566:3:136",
                                "nodeType": "YulLiteral",
                                "src": "42566:3:136",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "42555:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "42555:3:136"
                            },
                            "nativeSrc": "42555:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "42555:15:136"
                          }
                        ],
                        "functionName": {
                          "name": "read_from_calldatat_uint16",
                          "nativeSrc": "42528:26:136",
                          "nodeType": "YulIdentifier",
                          "src": "42528:26:136"
                        },
                        "nativeSrc": "42528:43:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42528:43:136"
                      }
                    ],
                    "functionName": {
                      "name": "update_storage_value_offset_t_uint16_to_t_uint16",
                      "nativeSrc": "42473:48:136",
                      "nodeType": "YulIdentifier",
                      "src": "42473:48:136"
                    },
                    "nativeSrc": "42473:99:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42473:99:136"
                  },
                  "nativeSrc": "42473:99:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42473:99:136"
                }
              ]
            },
            "name": "update_storage_value_offset_0_t_struct$_UpdateConditions_$28153_calldata_ptr_to_t_struct$_UpdateConditions_$28153_storage",
            "nativeSrc": "41418:1160:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nativeSrc": "41549:4:136",
                "nodeType": "YulTypedName",
                "src": "41549:4:136",
                "type": ""
              },
              {
                "name": "value",
                "nativeSrc": "41555:5:136",
                "nodeType": "YulTypedName",
                "src": "41555:5:136",
                "type": ""
              }
            ],
            "src": "41418:1160:136"
          },
          {
            "body": {
              "nativeSrc": "42864:288:136",
              "nodeType": "YulBlock",
              "src": "42864:288:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "42881:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "42881:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "42892:3:136",
                        "nodeType": "YulLiteral",
                        "src": "42892:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "42874:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "42874:6:136"
                    },
                    "nativeSrc": "42874:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42874:22:136"
                  },
                  "nativeSrc": "42874:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42874:22:136"
                },
                {
                  "nativeSrc": "42905:71:136",
                  "nodeType": "YulAssignment",
                  "src": "42905:71:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "42940:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "42940:6:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "42948:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "42948:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "42960:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "42960:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "42971:3:136",
                            "nodeType": "YulLiteral",
                            "src": "42971:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "42956:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "42956:3:136"
                        },
                        "nativeSrc": "42956:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42956:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_calldata",
                      "nativeSrc": "42913:26:136",
                      "nodeType": "YulIdentifier",
                      "src": "42913:26:136"
                    },
                    "nativeSrc": "42913:63:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42913:63:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "42905:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "42905:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "42996:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "42996:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43007:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43007:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "42992:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "42992:3:136"
                        },
                        "nativeSrc": "42992:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "42992:18:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "43012:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "43012:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "42985:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "42985:6:136"
                    },
                    "nativeSrc": "42985:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "42985:34:136"
                  },
                  "nativeSrc": "42985:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "42985:34:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "43039:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "43039:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43050:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43050:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "43035:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43035:3:136"
                        },
                        "nativeSrc": "43035:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43035:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "43066:1:136",
                            "nodeType": "YulLiteral",
                            "src": "43066:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value3",
                            "nativeSrc": "43069:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "43069:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "43055:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "43055:10:136"
                        },
                        "nativeSrc": "43055:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43055:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43028:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43028:6:136"
                    },
                    "nativeSrc": "43028:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43028:49:136"
                  },
                  "nativeSrc": "43028:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43028:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "43097:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "43097:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43108:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43108:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "43093:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43093:3:136"
                        },
                        "nativeSrc": "43093:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43093:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value4",
                            "nativeSrc": "43117:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "43117:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "43133:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "43133:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "43138:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "43138:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "43129:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "43129:3:136"
                                },
                                "nativeSrc": "43129:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "43129:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "43142:1:136",
                                "nodeType": "YulLiteral",
                                "src": "43142:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "43125:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "43125:3:136"
                            },
                            "nativeSrc": "43125:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "43125:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "43113:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43113:3:136"
                        },
                        "nativeSrc": "43113:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43113:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43086:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43086:6:136"
                    },
                    "nativeSrc": "43086:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43086:60:136"
                  },
                  "nativeSrc": "43086:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43086:60:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_calldata_ptr_t_userDefinedValueType$_RadonHash_$37153_t_int8_t_contract$_IWitOracleRadonRegistry_$27394__to_t_string_memory_ptr_t_bytes32_t_int8_t_address__fromStack_library_reversed",
            "nativeSrc": "42583:569:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "42801:9:136",
                "nodeType": "YulTypedName",
                "src": "42801:9:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "42812:6:136",
                "nodeType": "YulTypedName",
                "src": "42812:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "42820:6:136",
                "nodeType": "YulTypedName",
                "src": "42820:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "42828:6:136",
                "nodeType": "YulTypedName",
                "src": "42828:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "42836:6:136",
                "nodeType": "YulTypedName",
                "src": "42836:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "42844:6:136",
                "nodeType": "YulTypedName",
                "src": "42844:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "42855:4:136",
                "nodeType": "YulTypedName",
                "src": "42855:4:136",
                "type": ""
              }
            ],
            "src": "42583:569:136"
          },
          {
            "body": {
              "nativeSrc": "43328:174:136",
              "nodeType": "YulBlock",
              "src": "43328:174:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "43345:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "43345:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "43358:2:136",
                                "nodeType": "YulLiteral",
                                "src": "43358:2:136",
                                "type": "",
                                "value": "96"
                              },
                              {
                                "name": "value0",
                                "nativeSrc": "43362:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "43362:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "43354:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "43354:3:136"
                            },
                            "nativeSrc": "43354:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "43354:15:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "43375:26:136",
                                "nodeType": "YulLiteral",
                                "src": "43375:26:136",
                                "type": "",
                                "value": "0xffffffffffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "43371:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "43371:3:136"
                            },
                            "nativeSrc": "43371:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "43371:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "43350:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43350:3:136"
                        },
                        "nativeSrc": "43350:53:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43350:53:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43338:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43338:6:136"
                    },
                    "nativeSrc": "43338:66:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43338:66:136"
                  },
                  "nativeSrc": "43338:66:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43338:66:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "43424:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "43424:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43429:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43429:2:136",
                            "type": "",
                            "value": "20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "43420:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43420:3:136"
                        },
                        "nativeSrc": "43420:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43420:12:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "43438:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "43438:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "43450:3:136",
                                "nodeType": "YulLiteral",
                                "src": "43450:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "43455:10:136",
                                "nodeType": "YulLiteral",
                                "src": "43455:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "43446:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "43446:3:136"
                            },
                            "nativeSrc": "43446:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "43446:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "43434:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43434:3:136"
                        },
                        "nativeSrc": "43434:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43434:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43413:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43413:6:136"
                    },
                    "nativeSrc": "43413:55:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43413:55:136"
                  },
                  "nativeSrc": "43413:55:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43413:55:136"
                },
                {
                  "nativeSrc": "43477:19:136",
                  "nodeType": "YulAssignment",
                  "src": "43477:19:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "43488:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "43488:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "43493:2:136",
                        "nodeType": "YulLiteral",
                        "src": "43493:2:136",
                        "type": "",
                        "value": "24"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "43484:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "43484:3:136"
                    },
                    "nativeSrc": "43484:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43484:12:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "43477:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "43477:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_address_t_userDefinedValueType$_ID4_$28155__to_t_address_t_bytes4__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "43157:345:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "43296:3:136",
                "nodeType": "YulTypedName",
                "src": "43296:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "43301:6:136",
                "nodeType": "YulTypedName",
                "src": "43301:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "43309:6:136",
                "nodeType": "YulTypedName",
                "src": "43309:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "43320:3:136",
                "nodeType": "YulTypedName",
                "src": "43320:3:136",
                "type": ""
              }
            ],
            "src": "43157:345:136"
          },
          {
            "body": {
              "nativeSrc": "43723:204:136",
              "nodeType": "YulBlock",
              "src": "43723:204:136",
              "statements": [
                {
                  "nativeSrc": "43733:26:136",
                  "nodeType": "YulAssignment",
                  "src": "43733:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "43745:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "43745:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "43756:2:136",
                        "nodeType": "YulLiteral",
                        "src": "43756:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "43741:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "43741:3:136"
                    },
                    "nativeSrc": "43741:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43741:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "43733:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "43733:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "43775:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "43775:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "43786:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "43786:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43768:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43768:6:136"
                    },
                    "nativeSrc": "43768:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43768:25:136"
                  },
                  "nativeSrc": "43768:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43768:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "43813:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "43813:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43824:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43824:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "43809:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43809:3:136"
                        },
                        "nativeSrc": "43809:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43809:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "43833:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "43833:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "43845:3:136",
                                "nodeType": "YulLiteral",
                                "src": "43845:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "43850:10:136",
                                "nodeType": "YulLiteral",
                                "src": "43850:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "43841:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "43841:3:136"
                            },
                            "nativeSrc": "43841:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "43841:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "43829:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43829:3:136"
                        },
                        "nativeSrc": "43829:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43829:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43802:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43802:6:136"
                    },
                    "nativeSrc": "43802:61:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43802:61:136"
                  },
                  "nativeSrc": "43802:61:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43802:61:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "43883:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "43883:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43894:2:136",
                            "nodeType": "YulLiteral",
                            "src": "43894:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "43879:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43879:3:136"
                        },
                        "nativeSrc": "43879:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43879:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nativeSrc": "43903:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "43903:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "43911:8:136",
                            "nodeType": "YulLiteral",
                            "src": "43911:8:136",
                            "type": "",
                            "value": "0xffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "43899:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "43899:3:136"
                        },
                        "nativeSrc": "43899:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "43899:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "43872:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "43872:6:136"
                    },
                    "nativeSrc": "43872:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "43872:49:136"
                  },
                  "nativeSrc": "43872:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "43872:49:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_struct$_PriceFeed_$22395_storage_ptr_t_userDefinedValueType$_ID4_$28155_t_uint24__to_t_uint256_t_bytes4_t_uint24__fromStack_library_reversed",
            "nativeSrc": "43507:420:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "43676:9:136",
                "nodeType": "YulTypedName",
                "src": "43676:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "43687:6:136",
                "nodeType": "YulTypedName",
                "src": "43687:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "43695:6:136",
                "nodeType": "YulTypedName",
                "src": "43695:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "43703:6:136",
                "nodeType": "YulTypedName",
                "src": "43703:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "43714:4:136",
                "nodeType": "YulTypedName",
                "src": "43714:4:136",
                "type": ""
              }
            ],
            "src": "43507:420:136"
          },
          {
            "body": {
              "nativeSrc": "44041:898:136",
              "nodeType": "YulBlock",
              "src": "44041:898:136",
              "statements": [
                {
                  "nativeSrc": "44051:43:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44051:43:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nativeSrc": "44069:7:136",
                            "nodeType": "YulIdentifier",
                            "src": "44069:7:136"
                          },
                          {
                            "name": "headStart",
                            "nativeSrc": "44078:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "44078:9:136"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nativeSrc": "44065:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44065:3:136"
                        },
                        "nativeSrc": "44065:23:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44065:23:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "44090:3:136",
                        "nodeType": "YulLiteral",
                        "src": "44090:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nativeSrc": "44061:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "44061:3:136"
                    },
                    "nativeSrc": "44061:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44061:33:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "44055:2:136",
                      "nodeType": "YulTypedName",
                      "src": "44055:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "44109:16:136",
                    "nodeType": "YulBlock",
                    "src": "44109:16:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nativeSrc": "44118:1:136",
                              "nodeType": "YulLiteral",
                              "src": "44118:1:136",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nativeSrc": "44121:1:136",
                              "nodeType": "YulLiteral",
                              "src": "44121:1:136",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nativeSrc": "44111:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44111:6:136"
                          },
                          "nativeSrc": "44111:12:136",
                          "nodeType": "YulFunctionCall",
                          "src": "44111:12:136"
                        },
                        "nativeSrc": "44111:12:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "44111:12:136"
                      }
                    ]
                  },
                  "condition": {
                    "name": "_1",
                    "nativeSrc": "44106:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "44106:2:136"
                  },
                  "nativeSrc": "44103:22:136",
                  "nodeType": "YulIf",
                  "src": "44103:22:136"
                },
                {
                  "nativeSrc": "44134:7:136",
                  "nodeType": "YulAssignment",
                  "src": "44134:7:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "44140:1:136",
                    "nodeType": "YulLiteral",
                    "src": "44140:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variableNames": [
                    {
                      "name": "_1",
                      "nativeSrc": "44134:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "44134:2:136"
                    }
                  ]
                },
                {
                  "nativeSrc": "44150:23:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44150:23:136",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nativeSrc": "44170:2:136",
                        "nodeType": "YulLiteral",
                        "src": "44170:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44164:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44164:5:136"
                    },
                    "nativeSrc": "44164:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44164:9:136"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nativeSrc": "44154:6:136",
                      "nodeType": "YulTypedName",
                      "src": "44154:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "44207:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "44207:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation_6165",
                      "nativeSrc": "44182:24:136",
                      "nodeType": "YulIdentifier",
                      "src": "44182:24:136"
                    },
                    "nativeSrc": "44182:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44182:32:136"
                  },
                  "nativeSrc": "44182:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44182:32:136"
                },
                {
                  "nativeSrc": "44223:29:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44223:29:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "44242:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "44242:9:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44236:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44236:5:136"
                    },
                    "nativeSrc": "44236:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44236:16:136"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nativeSrc": "44227:5:136",
                      "nodeType": "YulTypedName",
                      "src": "44227:5:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "44285:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "44285:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "44261:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "44261:23:136"
                    },
                    "nativeSrc": "44261:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44261:30:136"
                  },
                  "nativeSrc": "44261:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44261:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nativeSrc": "44307:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "44307:6:136"
                      },
                      {
                        "name": "value",
                        "nativeSrc": "44315:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "44315:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44300:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44300:6:136"
                    },
                    "nativeSrc": "44300:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44300:21:136"
                  },
                  "nativeSrc": "44300:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44300:21:136"
                },
                {
                  "nativeSrc": "44330:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44330:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "44355:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "44355:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44366:2:136",
                            "nodeType": "YulLiteral",
                            "src": "44366:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44351:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44351:3:136"
                        },
                        "nativeSrc": "44351:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44351:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44345:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44345:5:136"
                    },
                    "nativeSrc": "44345:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44345:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nativeSrc": "44334:7:136",
                      "nodeType": "YulTypedName",
                      "src": "44334:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nativeSrc": "44403:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44403:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "44379:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "44379:23:136"
                    },
                    "nativeSrc": "44379:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44379:32:136"
                  },
                  "nativeSrc": "44379:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44379:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "44431:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44431:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44439:2:136",
                            "nodeType": "YulLiteral",
                            "src": "44439:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44427:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44427:3:136"
                        },
                        "nativeSrc": "44427:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44427:15:136"
                      },
                      {
                        "name": "value_1",
                        "nativeSrc": "44444:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44444:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44420:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44420:6:136"
                    },
                    "nativeSrc": "44420:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44420:32:136"
                  },
                  "nativeSrc": "44420:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44420:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "44472:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44472:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44480:2:136",
                            "nodeType": "YulLiteral",
                            "src": "44480:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44468:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44468:3:136"
                        },
                        "nativeSrc": "44468:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44468:15:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nativeSrc": "44517:9:136",
                                "nodeType": "YulIdentifier",
                                "src": "44517:9:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "44528:2:136",
                                "nodeType": "YulLiteral",
                                "src": "44528:2:136",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nativeSrc": "44513:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "44513:3:136"
                            },
                            "nativeSrc": "44513:18:136",
                            "nodeType": "YulFunctionCall",
                            "src": "44513:18:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_int56_fromMemory",
                          "nativeSrc": "44485:27:136",
                          "nodeType": "YulIdentifier",
                          "src": "44485:27:136"
                        },
                        "nativeSrc": "44485:47:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44485:47:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44461:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44461:6:136"
                    },
                    "nativeSrc": "44461:72:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44461:72:136"
                  },
                  "nativeSrc": "44461:72:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44461:72:136"
                },
                {
                  "nativeSrc": "44542:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44542:40:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "44567:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "44567:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44578:2:136",
                            "nodeType": "YulLiteral",
                            "src": "44578:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44563:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44563:3:136"
                        },
                        "nativeSrc": "44563:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44563:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44557:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44557:5:136"
                    },
                    "nativeSrc": "44557:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44557:25:136"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nativeSrc": "44546:7:136",
                      "nodeType": "YulTypedName",
                      "src": "44546:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nativeSrc": "44613:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44613:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_int8",
                      "nativeSrc": "44591:21:136",
                      "nodeType": "YulIdentifier",
                      "src": "44591:21:136"
                    },
                    "nativeSrc": "44591:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44591:30:136"
                  },
                  "nativeSrc": "44591:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44591:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "44641:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44641:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44649:2:136",
                            "nodeType": "YulLiteral",
                            "src": "44649:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44637:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44637:3:136"
                        },
                        "nativeSrc": "44637:15:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44637:15:136"
                      },
                      {
                        "name": "value_2",
                        "nativeSrc": "44654:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44654:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44630:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44630:6:136"
                    },
                    "nativeSrc": "44630:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44630:32:136"
                  },
                  "nativeSrc": "44630:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44630:32:136"
                },
                {
                  "nativeSrc": "44671:41:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44671:41:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "44696:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "44696:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44707:3:136",
                            "nodeType": "YulLiteral",
                            "src": "44707:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44692:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44692:3:136"
                        },
                        "nativeSrc": "44692:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44692:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44686:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44686:5:136"
                    },
                    "nativeSrc": "44686:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44686:26:136"
                  },
                  "variables": [
                    {
                      "name": "value_3",
                      "nativeSrc": "44675:7:136",
                      "nodeType": "YulTypedName",
                      "src": "44675:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_3",
                        "nativeSrc": "44745:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44745:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_uint64",
                      "nativeSrc": "44721:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "44721:23:136"
                    },
                    "nativeSrc": "44721:32:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44721:32:136"
                  },
                  "nativeSrc": "44721:32:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44721:32:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "44773:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44773:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44781:3:136",
                            "nodeType": "YulLiteral",
                            "src": "44781:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44769:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44769:3:136"
                        },
                        "nativeSrc": "44769:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44769:16:136"
                      },
                      {
                        "name": "value_3",
                        "nativeSrc": "44787:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44787:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44762:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44762:6:136"
                    },
                    "nativeSrc": "44762:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44762:33:136"
                  },
                  "nativeSrc": "44762:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44762:33:136"
                },
                {
                  "nativeSrc": "44804:16:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "44804:16:136",
                  "value": {
                    "kind": "number",
                    "nativeSrc": "44819:1:136",
                    "nodeType": "YulLiteral",
                    "src": "44819:1:136",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "value_4",
                      "nativeSrc": "44808:7:136",
                      "nodeType": "YulTypedName",
                      "src": "44808:7:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "nativeSrc": "44829:37:136",
                  "nodeType": "YulAssignment",
                  "src": "44829:37:136",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "44850:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "44850:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44861:3:136",
                            "nodeType": "YulLiteral",
                            "src": "44861:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44846:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44846:3:136"
                        },
                        "nativeSrc": "44846:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44846:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "44840:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "44840:5:136"
                    },
                    "nativeSrc": "44840:26:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44840:26:136"
                  },
                  "variableNames": [
                    {
                      "name": "value_4",
                      "nativeSrc": "44829:7:136",
                      "nodeType": "YulIdentifier",
                      "src": "44829:7:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nativeSrc": "44886:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "44886:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "44894:3:136",
                            "nodeType": "YulLiteral",
                            "src": "44894:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "44882:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "44882:3:136"
                        },
                        "nativeSrc": "44882:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "44882:16:136"
                      },
                      {
                        "name": "value_4",
                        "nativeSrc": "44900:7:136",
                        "nodeType": "YulIdentifier",
                        "src": "44900:7:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "44875:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44875:6:136"
                    },
                    "nativeSrc": "44875:33:136",
                    "nodeType": "YulFunctionCall",
                    "src": "44875:33:136"
                  },
                  "nativeSrc": "44875:33:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "44875:33:136"
                },
                {
                  "nativeSrc": "44917:16:136",
                  "nodeType": "YulAssignment",
                  "src": "44917:16:136",
                  "value": {
                    "name": "memPtr",
                    "nativeSrc": "44927:6:136",
                    "nodeType": "YulIdentifier",
                    "src": "44927:6:136"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nativeSrc": "44917:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "44917:6:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_struct$_PriceData_$22357_memory_ptr_fromMemory",
            "nativeSrc": "43932:1007:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "44007:9:136",
                "nodeType": "YulTypedName",
                "src": "44007:9:136",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nativeSrc": "44018:7:136",
                "nodeType": "YulTypedName",
                "src": "44018:7:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nativeSrc": "44030:6:136",
                "nodeType": "YulTypedName",
                "src": "44030:6:136",
                "type": ""
              }
            ],
            "src": "43932:1007:136"
          },
          {
            "body": {
              "nativeSrc": "45052:101:136",
              "nodeType": "YulBlock",
              "src": "45052:101:136",
              "statements": [
                {
                  "nativeSrc": "45062:26:136",
                  "nodeType": "YulAssignment",
                  "src": "45062:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "45074:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "45074:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "45085:2:136",
                        "nodeType": "YulLiteral",
                        "src": "45085:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "45070:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "45070:3:136"
                    },
                    "nativeSrc": "45070:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45070:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "45062:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "45062:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "45104:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "45104:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "45119:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "45119:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "45127:18:136",
                            "nodeType": "YulLiteral",
                            "src": "45127:18:136",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "45115:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "45115:3:136"
                        },
                        "nativeSrc": "45115:31:136",
                        "nodeType": "YulFunctionCall",
                        "src": "45115:31:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "45097:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "45097:6:136"
                    },
                    "nativeSrc": "45097:50:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45097:50:136"
                  },
                  "nativeSrc": "45097:50:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "45097:50:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed",
            "nativeSrc": "44944:209:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "45021:9:136",
                "nodeType": "YulTypedName",
                "src": "45021:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "45032:6:136",
                "nodeType": "YulTypedName",
                "src": "45032:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "45043:4:136",
                "nodeType": "YulTypedName",
                "src": "45043:4:136",
                "type": ""
              }
            ],
            "src": "44944:209:136"
          },
          {
            "body": {
              "nativeSrc": "45208:162:136",
              "nodeType": "YulBlock",
              "src": "45208:162:136",
              "statements": [
                {
                  "nativeSrc": "45218:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "45218:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "45238:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "45238:5:136"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nativeSrc": "45232:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "45232:5:136"
                    },
                    "nativeSrc": "45232:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45232:12:136"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nativeSrc": "45222:6:136",
                      "nodeType": "YulTypedName",
                      "src": "45222:6:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "45259:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "45259:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nativeSrc": "45268:5:136",
                            "nodeType": "YulIdentifier",
                            "src": "45268:5:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "45275:4:136",
                            "nodeType": "YulLiteral",
                            "src": "45275:4:136",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "45264:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "45264:3:136"
                        },
                        "nativeSrc": "45264:16:136",
                        "nodeType": "YulFunctionCall",
                        "src": "45264:16:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "45282:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "45282:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mcopy",
                      "nativeSrc": "45253:5:136",
                      "nodeType": "YulIdentifier",
                      "src": "45253:5:136"
                    },
                    "nativeSrc": "45253:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45253:36:136"
                  },
                  "nativeSrc": "45253:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "45253:36:136"
                },
                {
                  "nativeSrc": "45298:26:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "45298:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "45312:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "45312:3:136"
                      },
                      {
                        "name": "length",
                        "nativeSrc": "45317:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "45317:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "45308:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "45308:3:136"
                    },
                    "nativeSrc": "45308:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45308:16:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "45302:2:136",
                      "nodeType": "YulTypedName",
                      "src": "45302:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "45340:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "45340:2:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "45344:1:136",
                        "nodeType": "YulLiteral",
                        "src": "45344:1:136",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "45333:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "45333:6:136"
                    },
                    "nativeSrc": "45333:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45333:13:136"
                  },
                  "nativeSrc": "45333:13:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "45333:13:136"
                },
                {
                  "nativeSrc": "45355:9:136",
                  "nodeType": "YulAssignment",
                  "src": "45355:9:136",
                  "value": {
                    "name": "_1",
                    "nativeSrc": "45362:2:136",
                    "nodeType": "YulIdentifier",
                    "src": "45362:2:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "45355:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "45355:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nativeSrc": "45158:212:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "45185:5:136",
                "nodeType": "YulTypedName",
                "src": "45185:5:136",
                "type": ""
              },
              {
                "name": "pos",
                "nativeSrc": "45192:3:136",
                "nodeType": "YulTypedName",
                "src": "45192:3:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "45200:3:136",
                "nodeType": "YulTypedName",
                "src": "45200:3:136",
                "type": ""
              }
            ],
            "src": "45158:212:136"
          },
          {
            "body": {
              "nativeSrc": "45663:134:136",
              "nodeType": "YulBlock",
              "src": "45663:134:136",
              "statements": [
                {
                  "nativeSrc": "45673:40:136",
                  "nodeType": "YulVariableDeclaration",
                  "src": "45673:40:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "45701:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "45701:6:136"
                      },
                      {
                        "name": "pos",
                        "nativeSrc": "45709:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "45709:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "45683:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "45683:17:136"
                    },
                    "nativeSrc": "45683:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45683:30:136"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nativeSrc": "45677:2:136",
                      "nodeType": "YulTypedName",
                      "src": "45677:2:136",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nativeSrc": "45729:2:136",
                        "nodeType": "YulIdentifier",
                        "src": "45729:2:136"
                      },
                      {
                        "hexValue": "3a20",
                        "kind": "string",
                        "nativeSrc": "45733:4:136",
                        "nodeType": "YulLiteral",
                        "src": "45733:4:136",
                        "type": "",
                        "value": ": "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "45722:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "45722:6:136"
                    },
                    "nativeSrc": "45722:16:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45722:16:136"
                  },
                  "nativeSrc": "45722:16:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "45722:16:136"
                },
                {
                  "nativeSrc": "45747:44:136",
                  "nodeType": "YulAssignment",
                  "src": "45747:44:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "45772:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "45772:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nativeSrc": "45784:2:136",
                            "nodeType": "YulIdentifier",
                            "src": "45784:2:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "45788:1:136",
                            "nodeType": "YulLiteral",
                            "src": "45788:1:136",
                            "type": "",
                            "value": "2"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "45780:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "45780:3:136"
                        },
                        "nativeSrc": "45780:10:136",
                        "nodeType": "YulFunctionCall",
                        "src": "45780:10:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "45754:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "45754:17:136"
                    },
                    "nativeSrc": "45754:37:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45754:37:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "45747:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "45747:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "45375:422:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "45631:3:136",
                "nodeType": "YulTypedName",
                "src": "45631:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "45636:6:136",
                "nodeType": "YulTypedName",
                "src": "45636:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "45644:6:136",
                "nodeType": "YulTypedName",
                "src": "45644:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "45655:3:136",
                "nodeType": "YulTypedName",
                "src": "45655:3:136",
                "type": ""
              }
            ],
            "src": "45375:422:136"
          },
          {
            "body": {
              "nativeSrc": "45976:173:136",
              "nodeType": "YulBlock",
              "src": "45976:173:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "45993:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "45993:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46004:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46004:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "45986:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "45986:6:136"
                    },
                    "nativeSrc": "45986:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "45986:21:136"
                  },
                  "nativeSrc": "45986:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "45986:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46027:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46027:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46038:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46038:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46023:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46023:3:136"
                        },
                        "nativeSrc": "46023:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46023:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46043:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46043:2:136",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46016:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46016:6:136"
                    },
                    "nativeSrc": "46016:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46016:30:136"
                  },
                  "nativeSrc": "46016:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46016:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46066:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46066:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46077:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46077:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46062:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46062:3:136"
                        },
                        "nativeSrc": "46062:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46062:18:136"
                      },
                      {
                        "hexValue": "63626f723a2063616e6e6f742066657463682064617461",
                        "kind": "string",
                        "nativeSrc": "46082:25:136",
                        "nodeType": "YulLiteral",
                        "src": "46082:25:136",
                        "type": "",
                        "value": "cbor: cannot fetch data"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46055:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46055:6:136"
                    },
                    "nativeSrc": "46055:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46055:53:136"
                  },
                  "nativeSrc": "46055:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46055:53:136"
                },
                {
                  "nativeSrc": "46117:26:136",
                  "nodeType": "YulAssignment",
                  "src": "46117:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "46129:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "46129:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46140:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46140:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "46125:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "46125:3:136"
                    },
                    "nativeSrc": "46125:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46125:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "46117:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "46117:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "45802:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "45953:9:136",
                "nodeType": "YulTypedName",
                "src": "45953:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "45967:4:136",
                "nodeType": "YulTypedName",
                "src": "45967:4:136",
                "type": ""
              }
            ],
            "src": "45802:347:136"
          },
          {
            "body": {
              "nativeSrc": "46328:231:136",
              "nodeType": "YulBlock",
              "src": "46328:231:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "46345:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "46345:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46356:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46356:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46338:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46338:6:136"
                    },
                    "nativeSrc": "46338:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46338:21:136"
                  },
                  "nativeSrc": "46338:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46338:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46379:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46379:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46390:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46390:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46375:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46375:3:136"
                        },
                        "nativeSrc": "46375:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46375:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46395:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46395:2:136",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46368:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46368:6:136"
                    },
                    "nativeSrc": "46368:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46368:30:136"
                  },
                  "nativeSrc": "46368:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46368:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46418:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46418:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46429:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46429:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46414:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46414:3:136"
                        },
                        "nativeSrc": "46414:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46414:18:136"
                      },
                      {
                        "hexValue": "4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520",
                        "kind": "string",
                        "nativeSrc": "46434:34:136",
                        "nodeType": "YulLiteral",
                        "src": "46434:34:136",
                        "type": "",
                        "value": "Ownable2Step: caller is not the "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46407:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46407:6:136"
                    },
                    "nativeSrc": "46407:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46407:62:136"
                  },
                  "nativeSrc": "46407:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46407:62:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46489:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46489:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46500:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46500:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46485:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46485:3:136"
                        },
                        "nativeSrc": "46485:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46485:18:136"
                      },
                      {
                        "hexValue": "6e6577206f776e6572",
                        "kind": "string",
                        "nativeSrc": "46505:11:136",
                        "nodeType": "YulLiteral",
                        "src": "46505:11:136",
                        "type": "",
                        "value": "new owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46478:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46478:6:136"
                    },
                    "nativeSrc": "46478:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46478:39:136"
                  },
                  "nativeSrc": "46478:39:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46478:39:136"
                },
                {
                  "nativeSrc": "46526:27:136",
                  "nodeType": "YulAssignment",
                  "src": "46526:27:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "46538:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "46538:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46549:3:136",
                        "nodeType": "YulLiteral",
                        "src": "46549:3:136",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "46534:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "46534:3:136"
                    },
                    "nativeSrc": "46534:19:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46534:19:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "46526:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "46526:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "46154:405:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "46305:9:136",
                "nodeType": "YulTypedName",
                "src": "46305:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "46319:4:136",
                "nodeType": "YulTypedName",
                "src": "46319:4:136",
                "type": ""
              }
            ],
            "src": "46154:405:136"
          },
          {
            "body": {
              "nativeSrc": "46738:173:136",
              "nodeType": "YulBlock",
              "src": "46738:173:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "46755:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "46755:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46766:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46766:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46748:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46748:6:136"
                    },
                    "nativeSrc": "46748:21:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46748:21:136"
                  },
                  "nativeSrc": "46748:21:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46748:21:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46789:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46789:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46800:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46800:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46785:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46785:3:136"
                        },
                        "nativeSrc": "46785:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46785:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46805:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46805:2:136",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46778:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46778:6:136"
                    },
                    "nativeSrc": "46778:30:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46778:30:136"
                  },
                  "nativeSrc": "46778:30:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46778:30:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "46828:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "46828:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "46839:2:136",
                            "nodeType": "YulLiteral",
                            "src": "46839:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "46824:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "46824:3:136"
                        },
                        "nativeSrc": "46824:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "46824:18:136"
                      },
                      {
                        "hexValue": "436c6f6e61626c653a20435245415445206661696c6564",
                        "kind": "string",
                        "nativeSrc": "46844:25:136",
                        "nodeType": "YulLiteral",
                        "src": "46844:25:136",
                        "type": "",
                        "value": "Clonable: CREATE failed"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "46817:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "46817:6:136"
                    },
                    "nativeSrc": "46817:53:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46817:53:136"
                  },
                  "nativeSrc": "46817:53:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "46817:53:136"
                },
                {
                  "nativeSrc": "46879:26:136",
                  "nodeType": "YulAssignment",
                  "src": "46879:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "46891:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "46891:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "46902:2:136",
                        "nodeType": "YulLiteral",
                        "src": "46902:2:136",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "46887:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "46887:3:136"
                    },
                    "nativeSrc": "46887:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "46887:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "46879:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "46879:4:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f8cfba6ed78807628b270dde5bcd8cbfca4a14a698a8ee8cad29a9a244bc492e__to_t_string_memory_ptr__fromStack_reversed",
            "nativeSrc": "46564:347:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "46715:9:136",
                "nodeType": "YulTypedName",
                "src": "46715:9:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "46729:4:136",
                "nodeType": "YulTypedName",
                "src": "46729:4:136",
                "type": ""
              }
            ],
            "src": "46564:347:136"
          },
          {
            "body": {
              "nativeSrc": "47117:240:136",
              "nodeType": "YulBlock",
              "src": "47117:240:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "47134:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "47134:3:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "47143:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "47143:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "47155:3:136",
                                "nodeType": "YulLiteral",
                                "src": "47155:3:136",
                                "type": "",
                                "value": "248"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "47160:3:136",
                                "nodeType": "YulLiteral",
                                "src": "47160:3:136",
                                "type": "",
                                "value": "255"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "47151:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "47151:3:136"
                            },
                            "nativeSrc": "47151:13:136",
                            "nodeType": "YulFunctionCall",
                            "src": "47151:13:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "47139:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47139:3:136"
                        },
                        "nativeSrc": "47139:26:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47139:26:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47127:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47127:6:136"
                    },
                    "nativeSrc": "47127:39:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47127:39:136"
                  },
                  "nativeSrc": "47127:39:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47127:39:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "47186:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "47186:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "47191:1:136",
                            "nodeType": "YulLiteral",
                            "src": "47191:1:136",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "47182:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47182:3:136"
                        },
                        "nativeSrc": "47182:11:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47182:11:136"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "47203:2:136",
                                "nodeType": "YulLiteral",
                                "src": "47203:2:136",
                                "type": "",
                                "value": "96"
                              },
                              {
                                "name": "value1",
                                "nativeSrc": "47207:6:136",
                                "nodeType": "YulIdentifier",
                                "src": "47207:6:136"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "47199:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "47199:3:136"
                            },
                            "nativeSrc": "47199:15:136",
                            "nodeType": "YulFunctionCall",
                            "src": "47199:15:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "47220:26:136",
                                "nodeType": "YulLiteral",
                                "src": "47220:26:136",
                                "type": "",
                                "value": "0xffffffffffffffffffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nativeSrc": "47216:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "47216:3:136"
                            },
                            "nativeSrc": "47216:31:136",
                            "nodeType": "YulFunctionCall",
                            "src": "47216:31:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "47195:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47195:3:136"
                        },
                        "nativeSrc": "47195:53:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47195:53:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47175:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47175:6:136"
                    },
                    "nativeSrc": "47175:74:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47175:74:136"
                  },
                  "nativeSrc": "47175:74:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47175:74:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "47269:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "47269:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "47274:2:136",
                            "nodeType": "YulLiteral",
                            "src": "47274:2:136",
                            "type": "",
                            "value": "21"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "47265:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47265:3:136"
                        },
                        "nativeSrc": "47265:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47265:12:136"
                      },
                      {
                        "name": "value2",
                        "nativeSrc": "47279:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "47279:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47258:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47258:6:136"
                    },
                    "nativeSrc": "47258:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47258:28:136"
                  },
                  "nativeSrc": "47258:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47258:28:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nativeSrc": "47306:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "47306:3:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "47311:2:136",
                            "nodeType": "YulLiteral",
                            "src": "47311:2:136",
                            "type": "",
                            "value": "53"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "47302:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47302:3:136"
                        },
                        "nativeSrc": "47302:12:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47302:12:136"
                      },
                      {
                        "name": "value3",
                        "nativeSrc": "47316:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "47316:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47295:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47295:6:136"
                    },
                    "nativeSrc": "47295:28:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47295:28:136"
                  },
                  "nativeSrc": "47295:28:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47295:28:136"
                },
                {
                  "nativeSrc": "47332:19:136",
                  "nodeType": "YulAssignment",
                  "src": "47332:19:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nativeSrc": "47343:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "47343:3:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "47348:2:136",
                        "nodeType": "YulLiteral",
                        "src": "47348:2:136",
                        "type": "",
                        "value": "85"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "47339:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "47339:3:136"
                    },
                    "nativeSrc": "47339:12:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47339:12:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "47332:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "47332:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "46916:441:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "47069:3:136",
                "nodeType": "YulTypedName",
                "src": "47069:3:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "47074:6:136",
                "nodeType": "YulTypedName",
                "src": "47074:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "47082:6:136",
                "nodeType": "YulTypedName",
                "src": "47082:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "47090:6:136",
                "nodeType": "YulTypedName",
                "src": "47090:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "47098:6:136",
                "nodeType": "YulTypedName",
                "src": "47098:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "47109:3:136",
                "nodeType": "YulTypedName",
                "src": "47109:3:136",
                "type": ""
              }
            ],
            "src": "46916:441:136"
          },
          {
            "body": {
              "nativeSrc": "47545:80:136",
              "nodeType": "YulBlock",
              "src": "47545:80:136",
              "statements": [
                {
                  "nativeSrc": "47555:64:136",
                  "nodeType": "YulAssignment",
                  "src": "47555:64:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "47580:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "47580:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "47606:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "47606:6:136"
                          },
                          {
                            "name": "pos",
                            "nativeSrc": "47614:3:136",
                            "nodeType": "YulIdentifier",
                            "src": "47614:3:136"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string",
                          "nativeSrc": "47588:17:136",
                          "nodeType": "YulIdentifier",
                          "src": "47588:17:136"
                        },
                        "nativeSrc": "47588:30:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47588:30:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nativeSrc": "47562:17:136",
                      "nodeType": "YulIdentifier",
                      "src": "47562:17:136"
                    },
                    "nativeSrc": "47562:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47562:57:136"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nativeSrc": "47555:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "47555:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nativeSrc": "47362:263:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nativeSrc": "47513:3:136",
                "nodeType": "YulTypedName",
                "src": "47513:3:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "47518:6:136",
                "nodeType": "YulTypedName",
                "src": "47518:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "47526:6:136",
                "nodeType": "YulTypedName",
                "src": "47526:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nativeSrc": "47537:3:136",
                "nodeType": "YulTypedName",
                "src": "47537:3:136",
                "type": ""
              }
            ],
            "src": "47362:263:136"
          },
          {
            "body": {
              "nativeSrc": "47876:343:136",
              "nodeType": "YulBlock",
              "src": "47876:343:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "47893:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "47893:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "47904:3:136",
                        "nodeType": "YulLiteral",
                        "src": "47904:3:136",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47886:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47886:6:136"
                    },
                    "nativeSrc": "47886:22:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47886:22:136"
                  },
                  "nativeSrc": "47886:22:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47886:22:136"
                },
                {
                  "nativeSrc": "47917:65:136",
                  "nodeType": "YulAssignment",
                  "src": "47917:65:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nativeSrc": "47954:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "47954:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "47966:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "47966:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "47977:3:136",
                            "nodeType": "YulLiteral",
                            "src": "47977:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "47962:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47962:3:136"
                        },
                        "nativeSrc": "47962:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47962:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "47925:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "47925:28:136"
                    },
                    "nativeSrc": "47925:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47925:57:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "47917:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "47917:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48002:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48002:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48013:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48013:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "47998:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "47998:3:136"
                        },
                        "nativeSrc": "47998:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "47998:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "48029:1:136",
                            "nodeType": "YulLiteral",
                            "src": "48029:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value1",
                            "nativeSrc": "48032:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "48032:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "48018:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "48018:10:136"
                        },
                        "nativeSrc": "48018:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48018:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "47991:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "47991:6:136"
                    },
                    "nativeSrc": "47991:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "47991:49:136"
                  },
                  "nativeSrc": "47991:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "47991:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nativeSrc": "48073:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "48073:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48085:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48085:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48096:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48096:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48081:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48081:3:136"
                        },
                        "nativeSrc": "48081:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48081:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Oracles",
                      "nativeSrc": "48049:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "48049:23:136"
                    },
                    "nativeSrc": "48049:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48049:51:136"
                  },
                  "nativeSrc": "48049:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48049:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48120:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48120:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48131:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48131:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48116:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48116:3:136"
                        },
                        "nativeSrc": "48116:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48116:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value3",
                            "nativeSrc": "48140:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "48140:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "48156:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "48156:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "48161:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "48161:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "48152:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "48152:3:136"
                                },
                                "nativeSrc": "48152:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "48152:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "48165:1:136",
                                "nodeType": "YulLiteral",
                                "src": "48165:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "48148:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "48148:3:136"
                            },
                            "nativeSrc": "48148:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "48148:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "48136:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48136:3:136"
                        },
                        "nativeSrc": "48136:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48136:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48109:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48109:6:136"
                    },
                    "nativeSrc": "48109:60:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48109:60:136"
                  },
                  "nativeSrc": "48109:60:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48109:60:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48189:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48189:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48200:3:136",
                            "nodeType": "YulLiteral",
                            "src": "48200:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48185:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48185:3:136"
                        },
                        "nativeSrc": "48185:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48185:19:136"
                      },
                      {
                        "name": "value4",
                        "nativeSrc": "48206:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "48206:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48178:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48178:6:136"
                    },
                    "nativeSrc": "48178:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48178:35:136"
                  },
                  "nativeSrc": "48178:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48178:35:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_library_reversed",
            "nativeSrc": "47630:589:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "47813:9:136",
                "nodeType": "YulTypedName",
                "src": "47813:9:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "47824:6:136",
                "nodeType": "YulTypedName",
                "src": "47824:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "47832:6:136",
                "nodeType": "YulTypedName",
                "src": "47832:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "47840:6:136",
                "nodeType": "YulTypedName",
                "src": "47840:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "47848:6:136",
                "nodeType": "YulTypedName",
                "src": "47848:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "47856:6:136",
                "nodeType": "YulTypedName",
                "src": "47856:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "47867:4:136",
                "nodeType": "YulTypedName",
                "src": "47867:4:136",
                "type": ""
              }
            ],
            "src": "47630:589:136"
          },
          {
            "body": {
              "nativeSrc": "48514:414:136",
              "nodeType": "YulBlock",
              "src": "48514:414:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "48531:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "48531:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "48546:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "48546:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "48558:3:136",
                                "nodeType": "YulLiteral",
                                "src": "48558:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "48563:10:136",
                                "nodeType": "YulLiteral",
                                "src": "48563:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "48554:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "48554:3:136"
                            },
                            "nativeSrc": "48554:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "48554:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "48542:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48542:3:136"
                        },
                        "nativeSrc": "48542:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48542:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48524:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48524:6:136"
                    },
                    "nativeSrc": "48524:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48524:52:136"
                  },
                  "nativeSrc": "48524:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48524:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48596:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48596:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48607:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48607:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48592:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48592:3:136"
                        },
                        "nativeSrc": "48592:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48592:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "48612:3:136",
                        "nodeType": "YulLiteral",
                        "src": "48612:3:136",
                        "type": "",
                        "value": "192"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48585:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48585:6:136"
                    },
                    "nativeSrc": "48585:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48585:31:136"
                  },
                  "nativeSrc": "48585:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48585:31:136"
                },
                {
                  "nativeSrc": "48625:65:136",
                  "nodeType": "YulAssignment",
                  "src": "48625:65:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "48662:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "48662:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48674:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48674:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48685:3:136",
                            "nodeType": "YulLiteral",
                            "src": "48685:3:136",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48670:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48670:3:136"
                        },
                        "nativeSrc": "48670:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48670:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "48633:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "48633:28:136"
                    },
                    "nativeSrc": "48633:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48633:57:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "48625:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "48625:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48710:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48710:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48721:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48721:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48706:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48706:3:136"
                        },
                        "nativeSrc": "48706:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48706:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "48737:1:136",
                            "nodeType": "YulLiteral",
                            "src": "48737:1:136",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "name": "value2",
                            "nativeSrc": "48740:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "48740:6:136"
                          }
                        ],
                        "functionName": {
                          "name": "signextend",
                          "nativeSrc": "48726:10:136",
                          "nodeType": "YulIdentifier",
                          "src": "48726:10:136"
                        },
                        "nativeSrc": "48726:21:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48726:21:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48699:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48699:6:136"
                    },
                    "nativeSrc": "48699:49:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48699:49:136"
                  },
                  "nativeSrc": "48699:49:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48699:49:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nativeSrc": "48781:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "48781:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48793:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48793:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48804:2:136",
                            "nodeType": "YulLiteral",
                            "src": "48804:2:136",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48789:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48789:3:136"
                        },
                        "nativeSrc": "48789:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48789:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_enum_Oracles",
                      "nativeSrc": "48757:23:136",
                      "nodeType": "YulIdentifier",
                      "src": "48757:23:136"
                    },
                    "nativeSrc": "48757:51:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48757:51:136"
                  },
                  "nativeSrc": "48757:51:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48757:51:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48828:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48828:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48839:3:136",
                            "nodeType": "YulLiteral",
                            "src": "48839:3:136",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48824:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48824:3:136"
                        },
                        "nativeSrc": "48824:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48824:19:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value4",
                            "nativeSrc": "48849:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "48849:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "48865:3:136",
                                    "nodeType": "YulLiteral",
                                    "src": "48865:3:136",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "48870:1:136",
                                    "nodeType": "YulLiteral",
                                    "src": "48870:1:136",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nativeSrc": "48861:3:136",
                                  "nodeType": "YulIdentifier",
                                  "src": "48861:3:136"
                                },
                                "nativeSrc": "48861:11:136",
                                "nodeType": "YulFunctionCall",
                                "src": "48861:11:136"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "48874:1:136",
                                "nodeType": "YulLiteral",
                                "src": "48874:1:136",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nativeSrc": "48857:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "48857:3:136"
                            },
                            "nativeSrc": "48857:19:136",
                            "nodeType": "YulFunctionCall",
                            "src": "48857:19:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "48845:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48845:3:136"
                        },
                        "nativeSrc": "48845:32:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48845:32:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48817:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48817:6:136"
                    },
                    "nativeSrc": "48817:61:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48817:61:136"
                  },
                  "nativeSrc": "48817:61:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48817:61:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "48898:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "48898:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "48909:3:136",
                            "nodeType": "YulLiteral",
                            "src": "48909:3:136",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "48894:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "48894:3:136"
                        },
                        "nativeSrc": "48894:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "48894:19:136"
                      },
                      {
                        "name": "value5",
                        "nativeSrc": "48915:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "48915:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "48887:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "48887:6:136"
                    },
                    "nativeSrc": "48887:35:136",
                    "nodeType": "YulFunctionCall",
                    "src": "48887:35:136"
                  },
                  "nativeSrc": "48887:35:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "48887:35:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_memory_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_reversed",
            "nativeSrc": "48224:704:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "48443:9:136",
                "nodeType": "YulTypedName",
                "src": "48443:9:136",
                "type": ""
              },
              {
                "name": "value5",
                "nativeSrc": "48454:6:136",
                "nodeType": "YulTypedName",
                "src": "48454:6:136",
                "type": ""
              },
              {
                "name": "value4",
                "nativeSrc": "48462:6:136",
                "nodeType": "YulTypedName",
                "src": "48462:6:136",
                "type": ""
              },
              {
                "name": "value3",
                "nativeSrc": "48470:6:136",
                "nodeType": "YulTypedName",
                "src": "48470:6:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "48478:6:136",
                "nodeType": "YulTypedName",
                "src": "48478:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "48486:6:136",
                "nodeType": "YulTypedName",
                "src": "48486:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "48494:6:136",
                "nodeType": "YulTypedName",
                "src": "48494:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "48505:4:136",
                "nodeType": "YulTypedName",
                "src": "48505:4:136",
                "type": ""
              }
            ],
            "src": "48224:704:136"
          },
          {
            "body": {
              "nativeSrc": "49204:253:136",
              "nodeType": "YulBlock",
              "src": "49204:253:136",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "49221:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "49221:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "49236:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "49236:6:136"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nativeSrc": "49248:3:136",
                                "nodeType": "YulLiteral",
                                "src": "49248:3:136",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nativeSrc": "49253:10:136",
                                "nodeType": "YulLiteral",
                                "src": "49253:10:136",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nativeSrc": "49244:3:136",
                              "nodeType": "YulIdentifier",
                              "src": "49244:3:136"
                            },
                            "nativeSrc": "49244:20:136",
                            "nodeType": "YulFunctionCall",
                            "src": "49244:20:136"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "49232:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49232:3:136"
                        },
                        "nativeSrc": "49232:33:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49232:33:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "49214:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "49214:6:136"
                    },
                    "nativeSrc": "49214:52:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49214:52:136"
                  },
                  "nativeSrc": "49214:52:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49214:52:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "49286:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "49286:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49297:2:136",
                            "nodeType": "YulLiteral",
                            "src": "49297:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "49282:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49282:3:136"
                        },
                        "nativeSrc": "49282:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49282:18:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "49302:3:136",
                        "nodeType": "YulLiteral",
                        "src": "49302:3:136",
                        "type": "",
                        "value": "256"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "49275:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "49275:6:136"
                    },
                    "nativeSrc": "49275:31:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49275:31:136"
                  },
                  "nativeSrc": "49275:31:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49275:31:136"
                },
                {
                  "nativeSrc": "49315:65:136",
                  "nodeType": "YulAssignment",
                  "src": "49315:65:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nativeSrc": "49352:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "49352:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "49364:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "49364:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49375:3:136",
                            "nodeType": "YulLiteral",
                            "src": "49375:3:136",
                            "type": "",
                            "value": "256"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "49360:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49360:3:136"
                        },
                        "nativeSrc": "49360:19:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49360:19:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_memory_ptr",
                      "nativeSrc": "49323:28:136",
                      "nodeType": "YulIdentifier",
                      "src": "49323:28:136"
                    },
                    "nativeSrc": "49323:57:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49323:57:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "49315:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "49315:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nativeSrc": "49424:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "49424:6:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "49436:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "49436:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49447:2:136",
                            "nodeType": "YulLiteral",
                            "src": "49447:2:136",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "49432:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49432:3:136"
                        },
                        "nativeSrc": "49432:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49432:18:136"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_struct_UpdateConditions",
                      "nativeSrc": "49389:34:136",
                      "nodeType": "YulIdentifier",
                      "src": "49389:34:136"
                    },
                    "nativeSrc": "49389:62:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49389:62:136"
                  },
                  "nativeSrc": "49389:62:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49389:62:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_memory_ptr_t_struct$_UpdateConditions_$28153_memory_ptr__to_t_bytes4_t_string_memory_ptr_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed",
            "nativeSrc": "48933:524:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "49157:9:136",
                "nodeType": "YulTypedName",
                "src": "49157:9:136",
                "type": ""
              },
              {
                "name": "value2",
                "nativeSrc": "49168:6:136",
                "nodeType": "YulTypedName",
                "src": "49168:6:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "49176:6:136",
                "nodeType": "YulTypedName",
                "src": "49176:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "49184:6:136",
                "nodeType": "YulTypedName",
                "src": "49184:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "49195:4:136",
                "nodeType": "YulTypedName",
                "src": "49195:4:136",
                "type": ""
              }
            ],
            "src": "48933:524:136"
          },
          {
            "body": {
              "nativeSrc": "49587:141:136",
              "nodeType": "YulBlock",
              "src": "49587:141:136",
              "statements": [
                {
                  "nativeSrc": "49597:26:136",
                  "nodeType": "YulAssignment",
                  "src": "49597:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "49609:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "49609:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "49620:2:136",
                        "nodeType": "YulLiteral",
                        "src": "49620:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "49605:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "49605:3:136"
                    },
                    "nativeSrc": "49605:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49605:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "49597:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "49597:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "49639:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "49639:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "49654:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "49654:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49662:4:136",
                            "nodeType": "YulLiteral",
                            "src": "49662:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "49650:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49650:3:136"
                        },
                        "nativeSrc": "49650:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49650:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "49632:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "49632:6:136"
                    },
                    "nativeSrc": "49632:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49632:36:136"
                  },
                  "nativeSrc": "49632:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49632:36:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "49688:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "49688:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49699:2:136",
                            "nodeType": "YulLiteral",
                            "src": "49699:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "49684:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49684:3:136"
                        },
                        "nativeSrc": "49684:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49684:18:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nativeSrc": "49708:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "49708:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49716:4:136",
                            "nodeType": "YulLiteral",
                            "src": "49716:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "49704:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49704:3:136"
                        },
                        "nativeSrc": "49704:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49704:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "49677:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "49677:6:136"
                    },
                    "nativeSrc": "49677:45:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49677:45:136"
                  },
                  "nativeSrc": "49677:45:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49677:45:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "49462:266:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "49548:9:136",
                "nodeType": "YulTypedName",
                "src": "49548:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "49559:6:136",
                "nodeType": "YulTypedName",
                "src": "49559:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "49567:6:136",
                "nodeType": "YulTypedName",
                "src": "49567:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "49578:4:136",
                "nodeType": "YulTypedName",
                "src": "49578:4:136",
                "type": ""
              }
            ],
            "src": "49462:266:136"
          },
          {
            "body": {
              "nativeSrc": "49832:87:136",
              "nodeType": "YulBlock",
              "src": "49832:87:136",
              "statements": [
                {
                  "nativeSrc": "49842:26:136",
                  "nodeType": "YulAssignment",
                  "src": "49842:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "49854:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "49854:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "49865:2:136",
                        "nodeType": "YulLiteral",
                        "src": "49865:2:136",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "49850:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "49850:3:136"
                    },
                    "nativeSrc": "49850:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49850:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "49842:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "49842:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "49884:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "49884:9:136"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nativeSrc": "49899:6:136",
                            "nodeType": "YulIdentifier",
                            "src": "49899:6:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "49907:4:136",
                            "nodeType": "YulLiteral",
                            "src": "49907:4:136",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nativeSrc": "49895:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "49895:3:136"
                        },
                        "nativeSrc": "49895:17:136",
                        "nodeType": "YulFunctionCall",
                        "src": "49895:17:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "49877:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "49877:6:136"
                    },
                    "nativeSrc": "49877:36:136",
                    "nodeType": "YulFunctionCall",
                    "src": "49877:36:136"
                  },
                  "nativeSrc": "49877:36:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "49877:36:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed",
            "nativeSrc": "49733:186:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "49801:9:136",
                "nodeType": "YulTypedName",
                "src": "49801:9:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "49812:6:136",
                "nodeType": "YulTypedName",
                "src": "49812:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "49823:4:136",
                "nodeType": "YulTypedName",
                "src": "49823:4:136",
                "type": ""
              }
            ],
            "src": "49733:186:136"
          },
          {
            "body": {
              "nativeSrc": "50053:119:136",
              "nodeType": "YulBlock",
              "src": "50053:119:136",
              "statements": [
                {
                  "nativeSrc": "50063:26:136",
                  "nodeType": "YulAssignment",
                  "src": "50063:26:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "50075:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "50075:9:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "50086:2:136",
                        "nodeType": "YulLiteral",
                        "src": "50086:2:136",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "50071:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "50071:3:136"
                    },
                    "nativeSrc": "50071:18:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50071:18:136"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nativeSrc": "50063:4:136",
                      "nodeType": "YulIdentifier",
                      "src": "50063:4:136"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nativeSrc": "50105:9:136",
                        "nodeType": "YulIdentifier",
                        "src": "50105:9:136"
                      },
                      {
                        "name": "value0",
                        "nativeSrc": "50116:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "50116:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "50098:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "50098:6:136"
                    },
                    "nativeSrc": "50098:25:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50098:25:136"
                  },
                  "nativeSrc": "50098:25:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "50098:25:136"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nativeSrc": "50143:9:136",
                            "nodeType": "YulIdentifier",
                            "src": "50143:9:136"
                          },
                          {
                            "kind": "number",
                            "nativeSrc": "50154:2:136",
                            "nodeType": "YulLiteral",
                            "src": "50154:2:136",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nativeSrc": "50139:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "50139:3:136"
                        },
                        "nativeSrc": "50139:18:136",
                        "nodeType": "YulFunctionCall",
                        "src": "50139:18:136"
                      },
                      {
                        "name": "value1",
                        "nativeSrc": "50159:6:136",
                        "nodeType": "YulIdentifier",
                        "src": "50159:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nativeSrc": "50132:6:136",
                      "nodeType": "YulIdentifier",
                      "src": "50132:6:136"
                    },
                    "nativeSrc": "50132:34:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50132:34:136"
                  },
                  "nativeSrc": "50132:34:136",
                  "nodeType": "YulExpressionStatement",
                  "src": "50132:34:136"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nativeSrc": "49924:248:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nativeSrc": "50014:9:136",
                "nodeType": "YulTypedName",
                "src": "50014:9:136",
                "type": ""
              },
              {
                "name": "value1",
                "nativeSrc": "50025:6:136",
                "nodeType": "YulTypedName",
                "src": "50025:6:136",
                "type": ""
              },
              {
                "name": "value0",
                "nativeSrc": "50033:6:136",
                "nodeType": "YulTypedName",
                "src": "50033:6:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nativeSrc": "50044:4:136",
                "nodeType": "YulTypedName",
                "src": "50044:4:136",
                "type": ""
              }
            ],
            "src": "49924:248:136"
          },
          {
            "body": {
              "nativeSrc": "50224:88:136",
              "nodeType": "YulBlock",
              "src": "50224:88:136",
              "statements": [
                {
                  "body": {
                    "nativeSrc": "50255:22:136",
                    "nodeType": "YulBlock",
                    "src": "50255:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "50257:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "50257:16:136"
                          },
                          "nativeSrc": "50257:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "50257:18:136"
                        },
                        "nativeSrc": "50257:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "50257:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "50240:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "50240:5:136"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nativeSrc": "50251:1:136",
                            "nodeType": "YulLiteral",
                            "src": "50251:1:136",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nativeSrc": "50247:3:136",
                          "nodeType": "YulIdentifier",
                          "src": "50247:3:136"
                        },
                        "nativeSrc": "50247:6:136",
                        "nodeType": "YulFunctionCall",
                        "src": "50247:6:136"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nativeSrc": "50237:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "50237:2:136"
                    },
                    "nativeSrc": "50237:17:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50237:17:136"
                  },
                  "nativeSrc": "50234:43:136",
                  "nodeType": "YulIf",
                  "src": "50234:43:136"
                },
                {
                  "nativeSrc": "50286:20:136",
                  "nodeType": "YulAssignment",
                  "src": "50286:20:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nativeSrc": "50297:5:136",
                        "nodeType": "YulIdentifier",
                        "src": "50297:5:136"
                      },
                      {
                        "kind": "number",
                        "nativeSrc": "50304:1:136",
                        "nodeType": "YulLiteral",
                        "src": "50304:1:136",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "50293:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "50293:3:136"
                    },
                    "nativeSrc": "50293:13:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50293:13:136"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nativeSrc": "50286:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "50286:3:136"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nativeSrc": "50177:135:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nativeSrc": "50206:5:136",
                "nodeType": "YulTypedName",
                "src": "50206:5:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nativeSrc": "50216:3:136",
                "nodeType": "YulTypedName",
                "src": "50216:3:136",
                "type": ""
              }
            ],
            "src": "50177:135:136"
          },
          {
            "body": {
              "nativeSrc": "50365:77:136",
              "nodeType": "YulBlock",
              "src": "50365:77:136",
              "statements": [
                {
                  "nativeSrc": "50375:16:136",
                  "nodeType": "YulAssignment",
                  "src": "50375:16:136",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "50386:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "50386:1:136"
                      },
                      {
                        "name": "y",
                        "nativeSrc": "50389:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "50389:1:136"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nativeSrc": "50382:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "50382:3:136"
                    },
                    "nativeSrc": "50382:9:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50382:9:136"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nativeSrc": "50375:3:136",
                      "nodeType": "YulIdentifier",
                      "src": "50375:3:136"
                    }
                  ]
                },
                {
                  "body": {
                    "nativeSrc": "50414:22:136",
                    "nodeType": "YulBlock",
                    "src": "50414:22:136",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nativeSrc": "50416:16:136",
                            "nodeType": "YulIdentifier",
                            "src": "50416:16:136"
                          },
                          "nativeSrc": "50416:18:136",
                          "nodeType": "YulFunctionCall",
                          "src": "50416:18:136"
                        },
                        "nativeSrc": "50416:18:136",
                        "nodeType": "YulExpressionStatement",
                        "src": "50416:18:136"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nativeSrc": "50406:1:136",
                        "nodeType": "YulIdentifier",
                        "src": "50406:1:136"
                      },
                      {
                        "name": "sum",
                        "nativeSrc": "50409:3:136",
                        "nodeType": "YulIdentifier",
                        "src": "50409:3:136"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nativeSrc": "50403:2:136",
                      "nodeType": "YulIdentifier",
                      "src": "50403:2:136"
                    },
                    "nativeSrc": "50403:10:136",
                    "nodeType": "YulFunctionCall",
                    "src": "50403:10:136"
                  },
                  "nativeSrc": "50400:36:136",
                  "nodeType": "YulIf",
                  "src": "50400:36:136"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nativeSrc": "50317:125:136",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nativeSrc": "50348:1:136",
                "nodeType": "YulTypedName",
                "src": "50348:1:136",
                "type": ""
              },
              {
                "name": "y",
                "nativeSrc": "50351:1:136",
                "nodeType": "YulTypedName",
                "src": "50351:1:136",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nativeSrc": "50357:3:136",
                "nodeType": "YulTypedName",
                "src": "50357:3:136",
                "type": ""
              }
            ],
            "src": "50317:125:136"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_userDefinedValueType_ID4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_userDefinedValueType$_ID4_$28155(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_userDefinedValueType_ID4(value)\n        value0 := value\n    }\n    function abi_encode_string_memory_ptr(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        mcopy(add(pos, 0x20), add(value, 0x20), length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_enum_Mappers(value, pos)\n    {\n        if iszero(lt(value, 5)) { panic_error_0x21() }\n        mstore(pos, value)\n    }\n    function abi_encode_enum_Oracles(value, pos)\n    {\n        if iszero(lt(value, 4)) { panic_error_0x21() }\n        mstore(pos, value)\n    }\n    function abi_encode_struct_Oracle(value, pos)\n    {\n        abi_encode_enum_Oracles(mload(value), pos)\n        mstore(add(pos, 0x20), and(mload(add(value, 0x20)), sub(shl(160, 1), 1)))\n        mstore(add(pos, 0x40), mload(add(value, 0x40)))\n    }\n    function abi_encode_uint16(value, pos)\n    {\n        mstore(pos, and(value, 0xffff))\n    }\n    function abi_encode_struct_UpdateConditions(value, pos)\n    {\n        mstore(pos, and(mload(value), 0xffffff))\n        mstore(add(pos, 0x20), iszero(iszero(mload(add(value, 0x20)))))\n        mstore(add(pos, 0x40), and(mload(add(value, 0x40)), 0xffffff))\n        mstore(add(pos, 0x60), and(mload(add(value, 0x60)), 0xffffff))\n        mstore(add(pos, 0x80), and(mload(add(value, 0x80)), 0xffff))\n        mstore(add(pos, 0xa0), and(mload(add(value, 0xa0)), 0xffff))\n    }\n    function abi_encode_userDefinedValueType_Timestamp(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_struct_Price(value, pos)\n    {\n        mstore(pos, signextend(0, mload(value)))\n        mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xffffffffffffffff))\n        mstore(add(pos, 0x40), signextend(6, mload(add(value, 0x40))))\n        mstore(add(pos, 0x60), and(mload(add(value, 0x60)), 0xffffffffffffffff))\n        mstore(add(pos, 0x80), mload(add(value, 0x80)))\n    }\n    function abi_encode_struct_Info(value, pos) -> end\n    {\n        mstore(pos, mload(value))\n        mstore(add(pos, 0x20), signextend(0, mload(add(value, 0x20))))\n        let memberValue0 := mload(add(value, 0x40))\n        mstore(add(pos, 0x40), 0x0240)\n        let tail := abi_encode_string_memory_ptr(memberValue0, add(pos, 0x0240))\n        let memberValue0_1 := mload(add(value, 0x60))\n        mstore(add(pos, 0x60), sub(tail, pos))\n        let tail_1 := add(tail, 0x40)\n        abi_encode_enum_Mappers(mload(memberValue0_1), tail)\n        let memberValue0_2 := mload(add(memberValue0_1, 0x20))\n        mstore(add(tail, 0x20), 0x40)\n        let pos_1 := tail_1\n        let length := mload(memberValue0_2)\n        mstore(tail_1, length)\n        pos_1 := add(tail, 0x60)\n        let tail_2 := add(add(tail, shl(5, length)), 0x60)\n        let srcPtr := add(memberValue0_2, 0x20)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos_1, add(sub(tail_2, tail), not(95)))\n            tail_2 := abi_encode_string_memory_ptr(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, 0x20)\n            pos_1 := add(pos_1, 0x20)\n        }\n        let memberValue0_3 := mload(add(value, 0x80))\n        abi_encode_struct_Oracle(memberValue0_3, add(pos, 0x80))\n        let memberValue0_4 := mload(add(value, 0xa0))\n        abi_encode_struct_UpdateConditions(memberValue0_4, add(pos, 0xe0))\n        let memberValue0_5 := mload(add(value, 0xc0))\n        abi_encode_struct_Price(memberValue0_5, add(pos, 0x01a0))\n        end := tail_2\n    }\n    function abi_encode_tuple_t_struct$_Info_$28125_memory_ptr__to_t_struct$_Info_$28125_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_struct_Info(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_int8__to_t_int8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, signextend(0, value0))\n    }\n    function validator_revert_uint64(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint64(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint64(value)\n    }\n    function abi_decode_tuple_t_userDefinedValueType$_ID_$29561t_uint64(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_uint64(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_struct$_PythPrice_$29570_memory_ptr__to_t_struct$_PythPrice_$29570_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, signextend(7, mload(value0)))\n        mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), 0xffffffffffffffff))\n        mstore(add(headStart, 0x40), signextend(3, mload(add(value0, 0x40))))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n    }\n    function abi_encode_tuple_t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let tail_2 := add(add(headStart, shl(5, length)), 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, headStart), not(63)))\n            tail_2 := abi_encode_struct_Info(mload(srcPtr), tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_decode_tuple_t_userDefinedValueType$_ID_$29561(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function validator_revert_int8(value)\n    {\n        if iszero(eq(value, signextend(0, value))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_int8t_enum$_Mappers_$28087t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_int8(value)\n        value2 := value\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(lt(value_1, 5)) { revert(0, 0) }\n        value3 := value_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset_1)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if gt(add(add(_1, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value4 := add(_1, 32)\n        value5 := length\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_int8t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_int8(value)\n        value2 := value\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_decode_tuple_t_struct$_DataPushReport_$37274_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 224) { revert(0, 0) }\n        value0 := _1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_UpdateConditions_$28153_memory_ptr__to_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        abi_encode_struct_UpdateConditions(value0, headStart)\n    }\n    function abi_encode_tuple_t_struct$_Price_$28105_memory_ptr__to_t_struct$_Price_$28105_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        abi_encode_struct_Price(value0, headStart)\n    }\n    function abi_decode_struct_UpdateConditions_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 192) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_UpdateConditions_$28153_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_struct_UpdateConditions_calldata(headStart, dataEnd)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function finalize_allocation_6165(memPtr)\n    {\n        let newFreePtr := add(memPtr, 0xc0)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function finalize_allocation_6166(memPtr)\n    {\n        let newFreePtr := add(memPtr, 64)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function finalize_allocation(memPtr, size)\n    {\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_string(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_1)\n        let _2 := array_allocation_size_string(length)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _2)\n        mstore(memPtr, length)\n        if gt(add(add(_1, length), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_1, 32), length)\n        mstore(add(add(memPtr, length), 32), 0)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID_$29561__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_tuple_t_contract$_IWitPriceFeedsConsumer_$27992__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_int8t_userDefinedValueType$_RadonHash_$37153(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_int8(value)\n        value2 := value\n        let value_1 := 0\n        value_1 := calldataload(add(headStart, 64))\n        value3 := value_1\n    }\n    function validator_revert_uint24(value)\n    {\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_userDefinedValueType$_ID4_$28155t_uint24(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_userDefinedValueType_ID4(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_uint24(value_1)\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_int8t_enum$_Oracles_$28092t_addresst_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_int8(value)\n        value2 := value\n        let value_1 := calldataload(add(headStart, 64))\n        if iszero(lt(value_1, 4)) { revert(0, 0) }\n        value3 := value_1\n        let value_2 := calldataload(add(headStart, 96))\n        validator_revert_address(value_2)\n        value4 := value_2\n        let value_3 := 0\n        value_3 := calldataload(add(headStart, 128))\n        value5 := value_3\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := 0\n        value := calldataload(headStart)\n        value0 := value\n    }\n    function abi_encode_tuple_t_int256_t_uint256_t_uint256__to_t_int256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_struct$_UpdateConditions_$28153_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        value2 := abi_decode_struct_UpdateConditions_calldata(add(headStart, 32), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_struct$_UpdateConditions_$28153_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_struct_UpdateConditions_calldata(add(headStart, 32), dataEnd)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155__to_t_bytes4__fromStack_library_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_uint64_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        validator_revert_uint64(value)\n    }\n    function abi_decode_int56_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, signextend(6, value))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_Price_$28105_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 160)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, 160)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let value := mload(headStart)\n        validator_revert_int8(value)\n        mstore(memPtr, value)\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_uint64(value_1)\n        mstore(add(memPtr, 32), value_1)\n        mstore(add(memPtr, 64), abi_decode_int56_fromMemory(add(headStart, 64)))\n        let value_2 := mload(add(headStart, 96))\n        validator_revert_uint64(value_2)\n        mstore(add(memPtr, 96), value_2)\n        let value_3 := 0\n        value_3 := mload(add(headStart, 128))\n        mstore(add(memPtr, 128), value_3)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_uint24__to_t_bytes4_t_uint24__fromStack_library_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), and(value1, 0xffffff))\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_bool__to_t_bytes4_t_bool__fromStack_library_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), iszero(iszero(value1)))\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr__to_t_bytes4_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string_calldata(value1, value2, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_userDefinedValueType_ID4(value)\n        value0 := value\n    }\n    function calldata_access_string_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(value, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_int8_t_enum$_Mappers_$28087_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_string_memory_ptr_t_int8_t_uint8_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_library_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string_calldata(value0, value1, add(headStart, 128))\n        mstore(add(headStart, 32), signextend(0, value2))\n        abi_encode_enum_Mappers(value3, add(headStart, 64))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let pos := tail_1\n        mstore(tail_1, value5)\n        pos := add(tail_1, 32)\n        let tail_2 := add(add(tail_1, shl(5, value5)), 32)\n        let srcPtr := value4\n        let i := 0\n        for { } lt(i, value5) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, tail_1), not(31)))\n            let elementValue0, elementValue1 := calldata_access_string_calldata(value4, srcPtr)\n            tail_2 := abi_encode_string_calldata(elementValue0, elementValue1, tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function return_data_selector() -> sig\n    {\n        if gt(returndatasize(), 3)\n        {\n            returndatacopy(0, 0, 4)\n            sig := shr(224, mload(0))\n        }\n    }\n    function try_decode_error_message() -> ret\n    {\n        if lt(returndatasize(), 0x44) { leave }\n        let data := mload(64)\n        returndatacopy(data, 4, add(returndatasize(), not(3)))\n        let offset := mload(data)\n        if or(gt(offset, 0xffffffffffffffff), gt(add(offset, 0x24), returndatasize())) { leave }\n        let msg := add(data, offset)\n        let length := mload(msg)\n        if gt(length, 0xffffffffffffffff) { leave }\n        if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), not(3))) { leave }\n        finalize_allocation(data, add(add(offset, length), 0x20))\n        ret := msg\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr_t_int8_t_enum$_Mappers_$28087_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_array$_t_string_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), 160)\n        let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 160))\n        mstore(add(headStart, 64), signextend(0, value3))\n        abi_encode_enum_Mappers(value4, add(headStart, 96))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        let pos := tail_1\n        mstore(tail_1, value6)\n        pos := add(tail_1, 32)\n        let tail_2 := add(add(tail_1, shl(5, value6)), 32)\n        let srcPtr := value5\n        let i := 0\n        for { } lt(i, value6) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_2, tail_1), not(31)))\n            let elementValue0, elementValue1 := calldata_access_string_calldata(value5, srcPtr)\n            tail_2 := abi_encode_string_calldata(elementValue0, elementValue1, tail_2)\n            srcPtr := add(srcPtr, 32)\n            pos := add(pos, 32)\n        }\n        tail := tail_2\n    }\n    function abi_decode_tuple_t_contract$_IWitOracleRadonRegistry_$27394_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_bytes_calldata_ptr_t_int8_t_contract$_IWitOracleRadonRegistry_$27394__to_t_string_memory_ptr_t_bytes_memory_ptr_t_int8_t_address__fromStack_library_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_string_calldata(value0, value1, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_string_calldata(value2, value3, tail_1)\n        mstore(add(headStart, 64), signextend(0, value4))\n        mstore(add(headStart, 96), and(value5, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_bytes4t_userDefinedValueType$_RadonHash_$37153_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_userDefinedValueType_ID4(value)\n        value0 := value\n        let value_1 := 0\n        value_1 := mload(add(headStart, 32))\n        value1 := value_1\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_calldata_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), 192)\n        tail := abi_encode_string_calldata(value1, value2, add(headStart, 192))\n        mstore(add(headStart, 64), signextend(0, value3))\n        abi_encode_enum_Oracles(value4, add(headStart, 96))\n        mstore(add(headStart, 128), and(value5, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 160), value6)\n    }\n    function validator_revert_uint16(value)\n    {\n        if iszero(eq(value, and(value, 0xffff))) { revert(0, 0) }\n    }\n    function abi_decode_uint16(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_uint16(value)\n    }\n    function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_uint16(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_struct$_DataPushReport_$37274_calldata_ptr_t_bytes_calldata_ptr__to_t_struct$_DataPushReport_$37274_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let value := 0\n        value := calldataload(value0)\n        mstore(add(headStart, 64), value)\n        let value_1 := 0\n        value_1 := calldataload(add(value0, 0x20))\n        mstore(add(headStart, 96), value_1)\n        let value_2 := calldataload(add(value0, 64))\n        validator_revert_uint16(value_2)\n        mstore(add(headStart, 128), and(value_2, 0xffff))\n        let value_3 := calldataload(add(value0, 96))\n        validator_revert_uint16(value_3)\n        mstore(add(headStart, 160), and(value_3, 0xffff))\n        let value_4 := calldataload(add(value0, 128))\n        validator_revert_uint64(value_4)\n        mstore(add(headStart, 192), and(value_4, 0xffffffffffffffff))\n        let memberValue0 := abi_decode_uint64(add(value0, 160))\n        abi_encode_userDefinedValueType_Timestamp(memberValue0, add(headStart, 0xe0))\n        let memberValue0_1, memberValue1 := calldata_access_string_calldata(value0, add(value0, 192))\n        mstore(add(headStart, 256), 0xe0)\n        let end := abi_encode_string_calldata(memberValue0_1, memberValue1, add(headStart, 288))\n        mstore(add(headStart, 0x20), sub(end, headStart))\n        tail := abi_encode_string_calldata(value1, value2, end)\n    }\n    function abi_decode_enum_RadonDataTypes_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(lt(value, 20)) { revert(0, 0) }\n    }\n    function abi_decode_uint8_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_struct_CBOR_fromMemory(headStart, end) -> value\n    {\n        if slt(sub(end, headStart), 0xc0) { revert(0, 0) }\n        let memPtr := mload(64)\n        finalize_allocation_6165(memPtr)\n        value := memPtr\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(end, _1), 64) { revert(0, 0) }\n        let memPtr_1 := mload(64)\n        finalize_allocation_6166(memPtr_1)\n        let offset_1 := mload(_1)\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        let _2 := add(_1, offset_1)\n        if iszero(slt(add(_2, 0x1f), end)) { revert(0, 0) }\n        let length := mload(_2)\n        let _3 := array_allocation_size_string(length)\n        let memPtr_2 := mload(64)\n        finalize_allocation(memPtr_2, _3)\n        mstore(memPtr_2, length)\n        if gt(add(add(_2, length), 0x20), end) { revert(0, 0) }\n        mcopy(add(memPtr_2, 0x20), add(_2, 0x20), length)\n        mstore(add(add(memPtr_2, length), 0x20), 0)\n        mstore(memPtr_1, memPtr_2)\n        let value_1 := 0\n        value_1 := mload(add(_1, 0x20))\n        mstore(add(memPtr_1, 0x20), value_1)\n        mstore(memPtr, memPtr_1)\n        mstore(add(memPtr, 0x20), abi_decode_uint8_fromMemory(add(headStart, 0x20)))\n        mstore(add(memPtr, 64), abi_decode_uint8_fromMemory(add(headStart, 64)))\n        mstore(add(memPtr, 96), abi_decode_uint8_fromMemory(add(headStart, 96)))\n        mstore(add(memPtr, 128), abi_decode_uint64_fromMemory(add(headStart, 128)))\n        mstore(add(memPtr, 160), abi_decode_uint64_fromMemory(add(headStart, 160)))\n    }\n    function abi_decode_tuple_t_struct$_DataResult_$37293_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 0xc0) { revert(0, 0) }\n        let memPtr := mload(64)\n        finalize_allocation_6165(memPtr)\n        let value := mload(_1)\n        if iszero(lt(value, 256)) { revert(0, 0) }\n        mstore(memPtr, value)\n        mstore(add(memPtr, 32), abi_decode_enum_RadonDataTypes_fromMemory(add(_1, 32)))\n        let value_1 := 0\n        value_1 := mload(add(_1, 64))\n        mstore(add(memPtr, 64), value_1)\n        let value_2 := 0\n        value_2 := mload(add(_1, 96))\n        mstore(add(memPtr, 96), value_2)\n        mstore(add(memPtr, 128), abi_decode_uint64_fromMemory(add(_1, 128)))\n        let offset_1 := mload(add(_1, 160))\n        if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n        mstore(add(memPtr, 160), abi_decode_struct_CBOR_fromMemory(add(_1, offset_1), dataEnd))\n        value0 := memPtr\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint64(x, y) -> sum\n    {\n        sum := add(and(x, 0xffffffffffffffff), and(y, 0xffffffffffffffff))\n        if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_sub_t_uint64(x, y) -> diff\n    {\n        diff := sub(and(x, 0xffffffffffffffff), and(y, 0xffffffffffffffff))\n        if gt(diff, 0xffffffffffffffff) { panic_error_0x11() }\n    }\n    function checked_sub_t_int64(x, y) -> diff\n    {\n        diff := sub(signextend(7, x), signextend(7, y))\n        if or(slt(diff, not(0x7fffffffffffffff)), sgt(diff, 0x7fffffffffffffff)) { panic_error_0x11() }\n    }\n    function negate_t_int56(value) -> ret\n    {\n        let value_1 := signextend(6, value)\n        if eq(value_1, not(0x7fffffffffffff)) { panic_error_0x11() }\n        ret := sub(0, value_1)\n    }\n    function checked_mul_t_int56(x, y) -> product\n    {\n        let product_raw := mul(signextend(6, x), signextend(6, y))\n        product := signextend(6, product_raw)\n        if iszero(eq(product, product_raw)) { panic_error_0x11() }\n    }\n    function checked_div_t_uint64(x, y) -> r\n    {\n        let y_1 := and(y, 0xffffffffffffffff)\n        if iszero(y_1)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(and(x, 0xffffffffffffffff), y_1)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint64_t_int56_t_int8__to_t_uint64_t_bytes32_t_uint64_t_int56_t_int8__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xffffffffffffffff))\n        mstore(add(headStart, 96), signextend(6, value3))\n        mstore(add(headStart, 128), signextend(0, value4))\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_userDefinedValueType$_Timestamp_$37157_t_userDefinedValueType$_TransactionHash_$37159_t_uint64_t_int56_t_uint64_t_int8__to_t_bytes4_t_uint64_t_bytes32_t_uint64_t_int56_t_uint64_t_int8__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), and(value3, 0xffffffffffffffff))\n        mstore(add(headStart, 128), signextend(6, value4))\n        mstore(add(headStart, 160), and(value5, 0xffffffffffffffff))\n        mstore(add(headStart, 192), signextend(0, value6))\n    }\n    function abi_encode_tuple_t_stringliteral_679c3eba4e7d658297efbb8047c8787b8adf0086ae8149ace5cf10d6f2df7de4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Clonable: only on clones\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_contract$_IWitPriceFeeds_$27848_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_address_t_struct$_UpdateConditions_$28153_storage__to_t_address_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 224)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        let slotValue := sload(value1)\n        mstore(add(headStart, 32), and(slotValue, 0xffffff))\n        mstore(add(headStart, 64), iszero(iszero(and(shr(24, slotValue), 0xff))))\n        mstore(add(headStart, 96), and(shr(32, slotValue), 0xffffff))\n        mstore(add(headStart, 128), and(shr(56, slotValue), 0xffffff))\n        abi_encode_uint16(and(shr(80, slotValue), 0xffff), add(headStart, 160))\n        abi_encode_uint16(and(shr(96, slotValue), 0xffff), add(headStart, 192))\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_struct$_UpdateConditions_$28153_memory_ptr(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 192)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := mload(64)\n        finalize_allocation_6165(memPtr)\n        let value := calldataload(headStart)\n        validator_revert_uint24(value)\n        mstore(memPtr, value)\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        mstore(add(memPtr, 32), value_1)\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_uint24(value_2)\n        mstore(add(memPtr, 64), value_2)\n        let value_3 := calldataload(add(headStart, 96))\n        validator_revert_uint24(value_3)\n        mstore(add(memPtr, 96), value_3)\n        let value_4 := calldataload(add(headStart, 128))\n        validator_revert_uint16(value_4)\n        mstore(add(memPtr, 128), value_4)\n        mstore(add(memPtr, 160), abi_decode_uint16(add(headStart, 160)))\n        value0 := memPtr\n    }\n    function read_from_calldatat_uint24(ptr) -> returnValue\n    {\n        let value := calldataload(ptr)\n        validator_revert_uint24(value)\n        returnValue := value\n    }\n    function update_storage_value_offset_uint24_to_uint24(slot, value)\n    {\n        let _1 := sload(slot)\n        sstore(slot, or(and(_1, not(0xffffff00000000000000)), and(shl(56, value), 0xffffff00000000000000)))\n    }\n    function read_from_calldatat_uint16(ptr) -> returnValue\n    {\n        let value := calldataload(ptr)\n        validator_revert_uint16(value)\n        returnValue := value\n    }\n    function update_storage_value_offset_uint16_to_uint16(slot, value)\n    {\n        let _1 := sload(slot)\n        sstore(slot, or(and(_1, not(shl(80, 65535))), and(shl(80, value), shl(80, 65535))))\n    }\n    function update_storage_value_offset_t_uint16_to_t_uint16(slot, value)\n    {\n        let _1 := sload(slot)\n        sstore(slot, or(and(_1, not(shl(96, 65535))), and(shl(96, value), shl(96, 65535))))\n    }\n    function update_storage_value_offset_0_t_struct$_UpdateConditions_$28153_calldata_ptr_to_t_struct$_UpdateConditions_$28153_storage(slot, value)\n    {\n        let value_1 := calldataload(value)\n        validator_revert_uint24(value_1)\n        let _1 := and(value_1, 0xffffff)\n        let _2 := sload(slot)\n        sstore(slot, or(and(_2, not(16777215)), _1))\n        let value_2 := calldataload(add(value, 32))\n        validator_revert_bool(value_2)\n        sstore(slot, or(or(and(_2, not(0xffffffff)), _1), and(shl(24, iszero(iszero(value_2))), 0xff000000)))\n        let returnValue := 0\n        let value_3 := calldataload(add(value, 64))\n        validator_revert_uint24(value_3)\n        returnValue := value_3\n        let _3 := sload(slot)\n        sstore(slot, or(and(_3, not(0xffffff00000000)), and(shl(32, value_3), 0xffffff00000000)))\n        update_storage_value_offset_uint24_to_uint24(slot, read_from_calldatat_uint24(add(value, 96)))\n        update_storage_value_offset_uint16_to_uint16(slot, read_from_calldatat_uint16(add(value, 128)))\n        update_storage_value_offset_t_uint16_to_t_uint16(slot, read_from_calldatat_uint16(add(value, 160)))\n    }\n    function abi_encode_tuple_t_string_calldata_ptr_t_userDefinedValueType$_RadonHash_$37153_t_int8_t_contract$_IWitOracleRadonRegistry_$27394__to_t_string_memory_ptr_t_bytes32_t_int8_t_address__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        tail := abi_encode_string_calldata(value0, value1, add(headStart, 128))\n        mstore(add(headStart, 32), value2)\n        mstore(add(headStart, 64), signextend(0, value3))\n        mstore(add(headStart, 96), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_packed_t_address_t_userDefinedValueType$_ID4_$28155__to_t_address_t_bytes4__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 20), and(value1, shl(224, 0xffffffff)))\n        end := add(pos, 24)\n    }\n    function abi_encode_tuple_t_struct$_PriceFeed_$22395_storage_ptr_t_userDefinedValueType$_ID4_$28155_t_uint24__to_t_uint256_t_bytes4_t_uint24__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, shl(224, 0xffffffff)))\n        mstore(add(headStart, 64), and(value2, 0xffffff))\n    }\n    function abi_decode_tuple_t_struct$_PriceData_$22357_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := slt(sub(dataEnd, headStart), 192)\n        if _1 { revert(0, 0) }\n        _1 := 0\n        let memPtr := mload(64)\n        finalize_allocation_6165(memPtr)\n        let value := mload(headStart)\n        validator_revert_uint64(value)\n        mstore(memPtr, value)\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_uint64(value_1)\n        mstore(add(memPtr, 32), value_1)\n        mstore(add(memPtr, 64), abi_decode_int56_fromMemory(add(headStart, 64)))\n        let value_2 := mload(add(headStart, 96))\n        validator_revert_int8(value_2)\n        mstore(add(memPtr, 96), value_2)\n        let value_3 := mload(add(headStart, 128))\n        validator_revert_uint64(value_3)\n        mstore(add(memPtr, 128), value_3)\n        let value_4 := 0\n        value_4 := mload(add(headStart, 160))\n        mstore(add(memPtr, 160), value_4)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffff))\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mcopy(pos, add(value, 0x20), length)\n        let _1 := add(pos, length)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_e64009107d042bdc478cc69a5433e4573ea2e8a23a46646c0ee241e30c888e73_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string(value0, pos)\n        mstore(_1, \": \")\n        end := abi_encode_string(value1, add(_1, 2))\n    }\n    function abi_encode_tuple_t_stringliteral_f9e00dcd71685f8522f8d07872510c3a81c2039687b393455d27e0cdc22dcafa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"cbor: cannot fetch data\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f8cfba6ed78807628b270dde5bcd8cbfca4a14a698a8ee8cad29a9a244bc492e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Clonable: CREATE failed\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, and(value0, shl(248, 255)))\n        mstore(add(pos, 1), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n        mstore(add(pos, 21), value2)\n        mstore(add(pos, 53), value3)\n        end := add(pos, 85)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string(value1, abi_encode_string(value0, pos))\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        tail := abi_encode_string_memory_ptr(value0, add(headStart, 160))\n        mstore(add(headStart, 32), signextend(0, value1))\n        abi_encode_enum_Oracles(value2, add(headStart, 64))\n        mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_memory_ptr_t_int8_t_enum$_Oracles_$28092_t_address_t_bytes32__to_t_bytes4_t_string_memory_ptr_t_int8_t_uint8_t_address_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), 192)\n        tail := abi_encode_string_memory_ptr(value1, add(headStart, 192))\n        mstore(add(headStart, 64), signextend(0, value2))\n        abi_encode_enum_Oracles(value3, add(headStart, 96))\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 160), value5)\n    }\n    function abi_encode_tuple_t_userDefinedValueType$_ID4_$28155_t_string_memory_ptr_t_struct$_UpdateConditions_$28153_memory_ptr__to_t_bytes4_t_string_memory_ptr_t_struct$_UpdateConditions_$28153_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n        mstore(add(headStart, 32), 256)\n        tail := abi_encode_string_memory_ptr(value1, add(headStart, 256))\n        abi_encode_struct_UpdateConditions(value2, add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint8_t_uint8__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xff))\n        mstore(add(headStart, 32), and(value1, 0xff))\n    }\n    function abi_encode_tuple_t_uint8__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n}",
      "id": 136,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "2051:30456:19:-:0;;;214:4:127;170:49;;2717:918:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2822:23:19;;:48;;2860:10;2822:48;;;2848:9;2822:48;-1:-1:-1;;;;;1273:26:1;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:1;;1350:1;1322:31;;;640:51:136;613:18;;1322:31:1;;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;2935:1:19::1;2910:10;-1:-1:-1::0;;;;;2910:22:19::1;;:26;2888:97;;;::::0;-1:-1:-1;;;2888:97:19;;904:2:136;2888:97:19::1;::::0;::::1;886:21:136::0;943:2;923:18;;;916:30;982:23;962:18;;;955:51;1023:18;;2888:97:19::1;702:345:136::0;2888:97:19::1;2996:22;3043:10;-1:-1:-1::0;;;;;3021:40:19::1;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2996:67:::0;-1:-1:-1;;;;;;;3096:47:19;::::1;-1:-1:-1::0;;;3096:47:19::1;::::0;:156:::1;;-1:-1:-1::0;;;;;;;3165:87:19;::::1;-1:-1:-1::0;;;3165:87:19::1;3096:156;3074:228;;;::::0;-1:-1:-1;;;3074:228:19;;1549:2:136;3074:228:19::1;::::0;::::1;1531:21:136::0;1588:2;1568:18;;;1561:30;1627:24;1607:18;;;1600:52;1669:18;;3074:228:19::1;1347:346:136::0;3074:228:19::1;-1:-1:-1::0;;;;;;;3313:22:19::1;;::::0;;;3384:243:::1;::::0;;::::1;::::0;::::1;::::0;;3429:9:::1;3384:243:::0;;-1:-1:-1;3384:243:19::1;::::0;::::1;::::0;;;3499:10:::1;3384:243:::0;;;;;;;3539:6:::1;-1:-1:-1::0;3384:243:19;;;;;;;;;;3614:1:::1;3384:243:::0;;;3346:35;:281;;-1:-1:-1;;;;;;3346:281:19;;;;;2051:30456;;1480:156:131;1570:13;1563:20;;-1:-1:-1;;;;;;1563:20:131;;;1594:34;1619:8;1594:24;:34::i;:::-;1480:156;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:177:136:-;93:13;;-1:-1:-1;;;;;135:31:136;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;1052:290::-;1121:6;1174:2;1162:9;1153:7;1149:23;1145:32;1142:52;;;1190:1;1187;1180:12;1142:52;1216:16;;-1:-1:-1;;;;;;1261:32:136;;1251:43;;1241:71;;1308:1;1305;1298:12;1241:71;1331:5;1052:290;-1:-1:-1;;;1052:290:136:o;1347:346::-;2051:30456:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "2051:30456:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16652:1313;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2535:43;;;;;;;;-1:-1:-1;;;;;4531:32:136;;;4513:51;;4501:2;4486:18;2535:43:19;4367:203:136;4443:145:19;-1:-1:-1;;;;;;;;;;;4528:48:19;-1:-1:-1;;;4528:48:19;;;;:52;;4443:145;;;4740:14:136;;4733:22;4715:41;;4703:2;4688:18;4443:145:19;4575:187:136;10326:106:19;;;;;;:::i;:::-;;:::i;:::-;;;5679:25:136;;;5667:2;5652:18;10326:106:19;5533:177:136;18132:135:19;;;;;;:::i;:::-;;:::i;:::-;;;5801:4:136;5873:21;;;;5855:40;;5843:2;5828:18;18132:135:19;5715:186:136;6980:263:19;;;;;;:::i;:::-;;:::i;:::-;;;;;;6806:13:136;;6803:1;6792:28;6774:47;;6881:4;6869:17;;;6863:24;-1:-1:-1;;;;;6859:49:136;6837:20;;;6830:79;6979:4;6967:17;;;6961:24;6958:1;6947:39;6925:20;;;6918:69;7043:4;7031:17;;;7025:24;7003:20;;;6996:54;;;;6761:3;6746:19;;6571:485;18413:313:19;;;:::i;:::-;;;;;;;:::i;8523:209::-;;;;;;:::i;:::-;;:::i;20166:454::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12756:128::-;730:6:127;12756:128:19;;21397:933;;;;;;:::i;:::-;;:::i;22748:1051::-;;;;;;:::i;:::-;;:::i;25425:3181::-;;;;;;:::i;:::-;;:::i;:::-;;2293:101:1;;;:::i;20628:475:19:-;;;;;;:::i;:::-;;:::i;19221:159::-;;;:::i;11397:262::-;;;;;;:::i;:::-;;:::i;13861:119::-;13951:21;;-1:-1:-1;;;13951:21:19;;;;13861:119;;19572:169;19686:7;1710:6:1;-1:-1:-1;;;;;1710:6:1;19572:169:19;12756:128;19388:176;;;:::i;:::-;;;;;;;:::i;8076:226::-;;;;;;:::i;:::-;;:::i;16493:147::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;820:125:127:-;;;:::i;21111:278:19:-;;;;;;:::i;:::-;;:::i;588:149:12:-;-1:-1:-1;;;588:149:12;;14053:131:19;;;;;;:::i;:::-;;:::i;13367:146::-;13484:20;;-1:-1:-1;;;;;13484:20:19;13367:146;;2587:122;2675:26;;;;;;;;;;;;-1:-1:-1;;;2675:26:19;;;;2587:122;;;;;;;:::i;18734:233::-;;;;;;:::i;:::-;;:::i;14981:135::-;;;;;;:::i;:::-;;:::i;23807:1007::-;;;;;;:::i;:::-;;:::i;15729:178::-;;;;;;:::i;:::-;;:::i;17973:151::-;;;;;;:::i;:::-;;:::i;19749:193::-;;;:::i;18275:126::-;;;;;;:::i;:::-;;:::i;11788:835::-;;;;;;:::i;:::-;;:::i;22338:402::-;;;;;;:::i;:::-;;:::i;19954:204::-;;;;;;:::i;:::-;;:::i;4850:980::-;;;;;;:::i;:::-;;:::i;:::-;;;;18980:25:136;;;19036:2;19021:18;;19014:34;;;;19064:18;;;19057:34;18968:2;18953:18;4850:980:19;18780:317:136;24822:349:19;;;;;;:::i;:::-;;:::i;3643:542::-;;;;;;:::i;:::-;;:::i;16652:1313::-;16746:11;;:::i;:::-;16775:47;16825:21;16841:4;16825:15;:21::i;:::-;16875:15;;;;;;-1:-1:-1;;;;16875:15:19;;;;16901:27;16857:15;16943:7;:23;;;;;;;;:::i;:::-;;16939:296;;16983:18;17004:11;-1:-1:-1;;;;;;17004:9:19;;;:11::i;:::-;16983:32;;17057:5;:12;-1:-1:-1;;;;;17044:26:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17030:40:19;-1:-1:-1;17090:8:19;17085:139;17110:5;:12;17104:3;:18;17085:139;;;-1:-1:-1;;;;;;;;;;;17170:19:19;;:31;17190:5;17196:3;17190:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;17170:31:19;;-1:-1:-1;;;;;17170:31:19;;;;;;;;;;;;;:38;;17151:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:11;17163:3;17151:16;;;;;;;;:::i;:::-;;;;;;;;;;:57;17124:6;;17085:139;;;;16968:267;16939:296;17263:15;;;;17314:22;;;;17414:543;;;;;;;;;-1:-1:-1;;;17263:15:19;;;;;-1:-1:-1;;;17372:22:19;;-1:-1:-1;;;;;17372:22:19;;17414:543;17438:13;17446:4;17438:7;:13::i;:::-;17414:543;;17476:17;;;;-1:-1:-1;;;17476:17:19;;;;17414:543;;;;;;;;;;;17476:8;;17414:543;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17554:92;;;;;;;;17587:7;17554:92;;;;;;;;:::i;:::-;;;;;17619:11;17554:92;;;17414:543;;;;17669:139;;;;;;;;17702:7;17669:139;;;;;;;;:::i;:::-;;;;;17736:14;-1:-1:-1;;;;;17669:139:19;;;;;17778:14;17669:139;;;17414:543;;;;17841:36;:8;:25;;:34;:36::i;:::-;17414:543;;;;17904:20;:35;17940:4;17904:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17414:543;;17407:550;16652:1313;-1:-1:-1;;;;;;;;16652:1313:19:o;10326:106::-;10396:7;10326:106;;;;;:::o;18132:135::-;18205:4;18229:21;18245:4;18229:15;:21::i;:::-;:30;;;-1:-1:-1;;;18229:30:19;;;;;18132:135;-1:-1:-1;;18132:135:19:o;6980:263::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7154:70:19;;-1:-1:-1;;;7154:70:19;;-1:-1:-1;;;;;;22356:33:136;;7154:70:19;;;22338:52:136;22438:8;22426:21;;22406:18;;;22399:49;7125:110:19;;7154:20;;:41;;22311:18:136;;7154:70:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29923:212:19;;;;;;;29961:15;;;;29923:212;;;;;;;;;30026:18;;30020:25;;29923:212;;;;;;;30102:19;;;;-1:-1:-1;;;;;30073:50:19;29923:212;;;;;;;;29816:327;7125:110;7118:117;6980:263;-1:-1:-1;;;6980:263:19:o;18413:313::-;-1:-1:-1;;;;;;;;;;;18573:12:19;;18473:20;;20759:24:61;-1:-1:-1;;;;;18562:24:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;18553:33;;18602:8;18597:122;18618:6;:13;18612:3;:19;18597:122;;;18670:37;18686:20;18695:5;18701:3;18695:10;;;;;;;;:::i;:::-;;;;;;;;;29795:2;29698:110;18670:37;18656:6;18663:3;18656:11;;;;;;;;:::i;:::-;;;;;;;;;;:51;18633:6;;18597:122;;;;18495:231;18413:313;:::o;8523:209::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8640:84:19;8669:20;:29;8708:3;8699:13;8669:44;;;;;;;;;;;;;;;:::i;20166:454::-;20300:17;1531:13:1;:11;:13::i;:::-;20335:8:19::1;20346:23;20355:13;20360:7;;20355:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;20355:4:19::1;::::0;-1:-1:-1;;;20355:13:19:i:1;:::-;29795:2:::0;29698:110;20346:23:::1;20380:56;::::0;-1:-1:-1;;;20380:56:19;;-1:-1:-1;;;;;;22677:33:136;;20380:56:19::1;::::0;::::1;22659:52:136::0;22754:14;;22747:22;22727:18;;;22720:50;20335:34:19;;-1:-1:-1;20380:20:19::1;::::0;:36:::1;::::0;22632:18:136;;20380:56:19::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20483:10;-1:-1:-1::0;;;;;20452:95:19::1;;20509:4;20529:7;;20452:95;;;;;;;;:::i;:::-;;;;;;;;20565:20;:45;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20558:54:::0;20166:454;-1:-1:-1;;;;;20166:454:19:o;12864:12::-;12857:19;;12756:128;:::o;21397:933::-;21640:6;1531:13:1;:11;:13::i;:::-;21668:177:19::1;::::0;-1:-1:-1;;;21668:177:19;;:20:::1;::::0;:56:::1;::::0;:177:::1;::::0;21743:7;;;;21770:9;;21799:7;;21825:5;;;;21668:177:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;21668:177:19::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;21668:177:19::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;21664:659;;;;:::i;:::-;;;::::0;::::1;;;;;:::i;:::-;;;;;;;;22216:16;22224:7;22216;:16::i;:::-;22165:90;21664:659;;;;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22292:18;:16;:18::i;21664:659::-;21938:10;-1:-1:-1::0;;;;;21904:205:19::1;;21967:23;21976:13;21981:7;;21976:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;21976:4:19::1;::::0;-1:-1:-1;;;21976:13:19:i:1;21967:23::-;22009:7;;22035:9;22063:7;22089:5;;21904:205;;;;;;;;;;;;:::i;:::-;;;;;;;;22131:10:::0;-1:-1:-1;21664:659:19::1;21397:933:::0;;;;;;;;:::o;22748:1051::-;22974:6;1531:13:1;:11;:13::i;:::-;23002:20:19::1;:63;23084:7;;23110:14;;23143:9;23182;-1:-1:-1::0;;;;;23171:30:19::1;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23002:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;23002:216:19::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;23002:216:19::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;22998:794;;;;:::i;:::-;;;::::0;::::1;;;;;:::i;:::-;;;;;;;;23685:16;23693:7;23685;:16::i;:::-;23634:90;22998:794;;;;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23761:18;:16;:18::i;22998:794::-;23339:10;-1:-1:-1::0;;;;;23305:274:19::1;;23368:23;23377:13;23382:7;;23377:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;23377:4:19::1;::::0;-1:-1:-1;;;23377:13:19:i:1;23368:23::-;23410:7;;23436:9;23464:14;23505:4;23553:10;23305:274;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;23601:10:19;22748:1051;-1:-1:-1;;;;;;22748:1051:19:o;25425:3181::-;25640:19;;;;;25606:8;25617:43;;;:22;:43;;;;;;;;;-1:-1:-1;;;;;;25694:11:19;;25671:88;;;;-1:-1:-1;;;25671:88:19;;;;;;;;;;;;25770:47;25820:21;25836:4;25820:15;:21::i;:::-;25770:71;;25852:41;25896:36;:8;:25;;:34;:36::i;:::-;26004:30;;;;25852:80;;-1:-1:-1;25965:69:19;;:35;;;;;;;;:::i;:::-;:69;;;;25943:142;;;;-1:-1:-1;;;25943:142:19;;;;;;;;;;;;26135:88;;-1:-1:-1;;;26135:88:19;;26096:36;;-1:-1:-1;;;;;26146:9:19;26135:36;;;;:88;;26186:6;;26207:5;;;;26135:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26135:88:19;;;;;;;;;;;;:::i;:::-;26096:127;-1:-1:-1;26278:28:19;26256:18;;:50;;;;;;;;:::i;:::-;;:124;;;;-1:-1:-1;26351:29:19;26327:11;:20;;;:53;;;;;;;;:::i;:::-;;26256:124;26234:191;;;;-1:-1:-1;;;26234:191:19;;;;;;;;;;;;26483:19;;;:29;26458:21;;;;-1:-1:-1;;;;;;;;26483:29:19;;;;;26458:24;;37963:41:116;26436:118:19;;;;-1:-1:-1;;;26436:118:19;;;;;;;;;;;;26711:30;;;;26678:19;;;:29;26654:87;;;;;-1:-1:-1;;;26678:29:19;;-1:-1:-1;;;;;26678:29:19;26654:87;:::i;:::-;-1:-1:-1;;;;;26587:154:19;26611:11;:21;;;-1:-1:-1;;;;;26587:154:19;;;26565:212;;;;-1:-1:-1;;;26565:212:19;;;;;;;;;;;;26815:19;;;:28;26993:21;;;;-1:-1:-1;;;26815:28:19;;26798:14;26815:28;;;;26798:14;;26895:120;;-1:-1:-1;;;26919:29:19;;-1:-1:-1;;;;;26919:29:19;26895:120;:::i;:::-;27057:19;;;:25;26854:172;;;;;;-1:-1:-1;;;;27057:25:19;;-1:-1:-1;;;;;27057:25:19;27037:17;27113:23;:11;:21;:23::i;:::-;27093:43;-1:-1:-1;27147:17:19;27173:37;27199:10;27093:43;27173:37;:::i;:::-;27147:64;;27222:21;27276:1;27261:11;:16;;;;:135;;27386:10;27363:12;27364:11;27363:12;:::i;:::-;:19;;27378:4;27363:19;:::i;:::-;27356:40;;;;;;:::i;:::-;27261:135;;;27326:10;27304:18;:11;27318:4;27304:18;:::i;:::-;27297:39;;;;;;:::i;:::-;27222:185;;27450:17;:34;;;:39;;27488:1;27450:39;:95;;;;27511:17;:34;;;27493:52;;:14;-1:-1:-1;;;;;27493:52:19;;;27450:95;27428:157;;;;-1:-1:-1;;;27428:157:19;;;;;;;;;;;;27598:19;;;:44;;27734:21;;;;-1:-1:-1;;;;;27702:53:19;;;-1:-1:-1;;;27702:53:19;-1:-1:-1;;;;;27653:38:19;;;-1:-1:-1;;;27653:38:19;-1:-1:-1;;27598:44:19;;;-1:-1:-1;;;27598:44:19;27653:38;-1:-1:-1;;27653:38:19;;;;;;;;;;;27702:53;;;;27794:20;;;;27598:44;27766:25;;:48;28021:1;27989:11;-1:-1:-1;;;;;;;;;;;20759:24:61;12756:128:19;27989:11;:20;;;-1:-1:-1;;;;;27989:20:19;:34;27985:614;;28102:21;;;;;28142:20;;;;;28045:219;;-1:-1:-1;;;;;36604:31:136;;;36586:50;;36667:2;36652:18;;36645:34;;;;36715:31;;;36695:18;;;36688:59;36794:1;36783:21;;;36778:2;36763:18;;36756:49;-1:-1:-1;36842:21:136;;;36821:19;;;36814:50;;;;-1:-1:-1;;;;;;28045:219:19;;;;;36573:3:136;36558:19;28045:219:19;;;;;;;27985:614;;;-1:-1:-1;;;;;;;;;;;28320:20:19;;;28396:21;;;;28436:20;;;;;28297:290;;-1:-1:-1;;;28297:290:19;;-1:-1:-1;;;;;;37285:33:136;;28297:290:19;;;37267:52:136;-1:-1:-1;;;;;37355:31:136;;;37335:18;;;37328:59;37403:18;;;37396:34;;;;37466:31;;;37446:18;;;37439:59;37546:1;37535:21;;;37514:19;;;37507:50;37594:31;;;37573:19;;;37566:60;-1:-1:-1;37663:21:136;;;37642:19;;;37635:50;-1:-1:-1;;;;;28320:20:19;;;;28297:57;;37239:19:136;;28297:290:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27985:614;25595:3011;;;;;;;;;;25425:3181;;;:::o;2293:101:1:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;20628:475:19:-;365:8:127;:6;:8::i;:::-;357:45;;;;-1:-1:-1;;;357:45:127;;37898:2:136;357:45:127;;;37880:21:136;37937:2;37917:18;;;37910:30;-1:-1:-1;;;37956:18:136;;;37949:54;38020:18;;357:45:127;;;;;;;;;1531:13:1::1;:11;:13::i;:::-;20755:297:19::2;-1:-1:-1::0;;;;;20778:26:19;::::2;20799:4;20778:26;::::0;::::2;::::0;:66:::2;;-1:-1:-1::0;730:6:127;-1:-1:-1;;;;;20825:19:19::2;:9;-1:-1:-1::0;;;;;20825:19:19::2;;;20778:66;:112;;;;;20889:1;20865:9;-1:-1:-1::0;;;;;20865:21:19::2;;:25;20778:112;:230;;;;;21003:4;-1:-1:-1::0;;;;;20933:75:19::2;20964:9;-1:-1:-1::0;;;;;20941:47:19::2;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20933:75:19::2;;20778:230;20755:297;;;;;;;;;;;;;-1:-1:-1::0;;;20755:297:19::2;;::::0;:8:::2;:297::i;:::-;21063:20:::0;:32;;-1:-1:-1;;;;;;21063:32:19::2;-1:-1:-1::0;;;;;21063:32:19;;;::::2;::::0;;;::::2;::::0;;20628:475::o;19221:159::-;19342:30;:28;:30::i;11397:262::-;11493:7;11541:9;:7;:9::i;:::-;11525:126;;-1:-1:-1;;;11525:126:19;;-1:-1:-1;;;;;11525:42:19;;;;;;;:126;;11582:8;;-1:-1:-1;;;;;;;;;;;11605:35:19;;11525:126;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19388:176::-;19473:23;;:::i;:::-;-1:-1:-1;19514:42:19;;;;;;;;-1:-1:-1;;;;;;;;;;;19514:42:19;;;;;;;;;;;;;;;;;;-1:-1:-1;;;19514:42:19;;;;;;;;;;;-1:-1:-1;;;19514:42:19;;;;;;;;;;-1:-1:-1;;;19514:42:19;;;;;;;;-1:-1:-1;;;19514:42:19;;;;;;;;;;;19388:176::o;8076:226::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8204:90:19;8233:20;:35;8278:3;8269:13;29698:110;16493:147;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16591:41:19;;-1:-1:-1;;;16591:41:19;;:20;;:35;;:41;;16627:4;;16591:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;820:125:127:-;922:4;-1:-1:-1;;;;;931:6:127;914:23;;;;820:125::o;21111:278:19:-;1531:13:1;:11;:13::i;:::-;21251:70:19::1;21260:38;;;::::0;;::::1;::::0;::::1;21286:11:::0;21260:38:::1;:::i;:::-;:25;:38::i;:::-;21251:70;;;;;;;;;;;;;-1:-1:-1::0;;;21251:70:19::1;;::::0;:8:::1;:70::i;:::-;21370:11:::0;-1:-1:-1;;;;;;;;;;;21332:49:19::1;21370:11:::0;21332:35;:49:::1;:::i;:::-;-1:-1:-1::0;;;21111:278:19:o;14053:131::-;14111:2;14141:34;14167:7;14141:25;:34::i;18734:233::-;18815:4;18832:47;18882:41;18898:24;18907:14;18912:8;;18907:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18907:4:19;;-1:-1:-1;;;18907:14:19:i;18898:24::-;18882:15;:41::i;:::-;18832:91;;18941:18;:8;:16;:18::i;:::-;18934:25;18734:233;-1:-1:-1;;;;18734:233:19:o;14981:135::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15073:35:19;;-1:-1:-1;;;15073:35:19;;:20;;:29;;:35;;15103:4;;15073:35;;;:::i;23807:1007::-;24027:6;1531:13:1;:11;:13::i;:::-;24055:20:19::1;:59;24133:7;;24159:10;24188:9;24227;-1:-1:-1::0;;;;;24216:30:19::1;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24055:208;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;24055:208:19::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;24055:208:19::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;24051:756;;;;:::i;:::-;;;::::0;::::1;;;;;:::i;:::-;;;;;;;;24700:16;24708:7;24700;:16::i;:::-;24649:90;24051:756;;;;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24776:18;:16;:18::i;24051:756::-;24355:10;-1:-1:-1::0;;;;;24321:274:19::1;;24384:23;24393:13;24398:7;;24393:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;24393:4:19::1;::::0;-1:-1:-1;;;24393:13:19:i:1;24384:23::-;24426:7;;24452:9;24480:14;24521:4;24569:10;24321:274;;;;;;;;;;;;:::i;:::-;;;;;;;;24617:10:::0;23807:1007;-1:-1:-1;;;;;23807:1007:19:o;15729:178::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15846:53:19;;-1:-1:-1;;;15846:53:19;;-1:-1:-1;;;;;;22356:33:136;;15846:53:19;;;22338:52:136;22438:8;22426:21;;22406:18;;;22399:49;15846:20:19;;:41;;22311:18:136;;15846:53:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17973:151::-;18047:21;18088;18104:4;18088:15;:21::i;:::-;18081:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17973:151;;;:::o;19749:193::-;19875:7;19907:27;889:13:131;;-1:-1:-1;;;;;889:13:131;;809:101;18275:126:19;18342:7;18379:13;18387:4;18379:7;:13::i;11788:835::-;11900:7;11933:23;11949:6;;11933:15;:23::i;:::-;11925:53;;;;-1:-1:-1;;;11925:53:19;;;;;;;;;;;;11989:22;12014:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;11989:70;;12070:20;12118:4;12125:22;12134:12;12139:6;;12134:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12134:4:19;;-1:-1:-1;;;12134:12:19:i;12125:22::-;12093:55;;43358:2:136;43354:15;;;;-1:-1:-1;;43350:53:136;12093:55:19;;;43338:66:136;-1:-1:-1;;;;;;43434:33:136;43420:12;;;43413:55;43484:12;;12093:55:19;;;;;;;;;;;;12070:78;;12159:19;12181:44;12206:9;12217:7;12181:24;:44::i;:::-;12159:66;;12240:11;-1:-1:-1;;;;;12240:23:19;;12267:1;12240:28;12236:351;;12285:22;12310:37;12328:9;12339:7;12310:17;:37::i;:::-;12285:62;;12541:1;12508:9;12502:16;12474:4;12463:9;12459:20;12435:1;12405:156;12390:171;12604:11;-1:-1:-1;;;;;;;11788:835:19:o;22338:402::-;22617:6;1531:13:1;:11;:13::i;:::-;22648:84:19::1;22672:7;;22648:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;22681:9:19;;-1:-1:-1;22692:7:19;;-1:-1:-1;22701:14:19;;-1:-1:-1;22717:14:19;22648:23:::1;:84::i;:::-;22641:91:::0;22338:402;-1:-1:-1;;;;;;;22338:402:19:o;19954:204::-;1531:13:1;:11;:13::i;:::-;20114:36:19::1;20140:9;20114:25;:36::i;:::-;19954:204:::0;:::o;4850:980::-;4940:13;;;5035:3;4940:13;5101:21;5035:3;5101:15;:21::i;:::-;5051:71;;5133:41;5177:36;:8;:25;;:34;:36::i;:::-;5307:31;;;;5276:63;;-1:-1:-1;;;5276:63:19;;;;;43768:25:136;;;-1:-1:-1;;;;;;43829:33:136;;43809:18;;;43802:61;43911:8;43899:21;;;43879:18;;;43872:49;5307:31:19;;-1:-1:-1;5224:49:19;;5276:24;;;;43741:18:136;;5276:63:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5368:20;;5224:115;;-1:-1:-1;;;;;;5368:24:19;:67;;5418:11;:17;;;5368:67;;;5395:20;;5368:67;-1:-1:-1;;;;;5363:73:19;5350:87;;5490:11;:21;;;-1:-1:-1;;;;;5461:52:19;5448:65;;5549:10;5563:1;5549:15;:262;;5698:17;:31;;;5649:80;;5673:11;:21;;;5649:80;;;;:::i;:::-;-1:-1:-1;;;;;5631:98:19;:15;:98;:161;;5789:3;5549:262;;5631:161;5757:3;5549:262;;;5585:3;5549:262;5524:298;;;;4997:833;;;;4850:980;;;;;:::o;24822:349::-;1531:13:1;:11;:13::i;:::-;25027:70:19::1;25036:38;;;::::0;;::::1;::::0;::::1;25062:11:::0;25036:38:::1;:::i;25027:70::-;25108:55;25142:7;;25108:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;25108:55:19::1;::::0;-1:-1:-1;;;25108:55:19::1;::::0;;::::1;::::0;::::1;25151:11:::0;25108:55:::1;:::i;:::-;:33;:55::i;3643:542::-:0;3855:7;365:8:127;:6;:8::i;:::-;357:45;;;;-1:-1:-1;;;357:45:127;;37898:2:136;357:45:127;;;37880:21:136;37937:2;37917:18;;;37910:30;-1:-1:-1;;;37956:18:136;;;37949:54;38020:18;;357:45:127;37696:348:136;357:45:127;4158:30:0::1;4191:26;:24;:26::i;:::-;4302:15:::0;;4158:59;;-1:-1:-1;4302:15:0::1;-1:-1:-1::0;;;4302:15:0;::::1;;4301:16;::::0;-1:-1:-1;;;;;4348:14:0::1;4279:19;4724:16:::0;;:34;::::1;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1::0;;;;;4788:16:0::1;4803:1;4788:16;:50;;;;-1:-1:-1::0;4816:4:0::1;4808:25;:30:::0;4788:50:::1;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1::0;;;4906:23:0::1;;;;;;;;;;;4849:91;4949:18:::0;;-1:-1:-1;;4949:18:0::1;4966:1;4949:18;::::0;;4977:67;::::1;;;5011:22:::0;;-1:-1:-1;;;;5011:22:0::1;-1:-1:-1::0;;;5011:22:0::1;::::0;;4977:67:::1;3880:48:19::2;::::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;3880:48:19::2;::::0;::::2;::::0;::::2;::::0;-1:-1:-1;;;;;3889:22:19;::::2;::::0;::::2;::::0;3880:8:::2;:48::i;:::-;3939:28;3958:8;3939:18;:28::i;:::-;3988:83;3997:51;;;::::0;;::::2;::::0;::::2;4023:24:::0;3997:51:::2;:::i;3988:83::-;4120:24:::0;-1:-1:-1;;;;;;;;;;;4082:62:19::2;4120:24:::0;4082:35;:62:::2;:::i;:::-;-1:-1:-1::0;4172:4:19::2;::::0;-1:-1:-1;;5068:14:0::1;5064:101;;;5098:23:::0;;-1:-1:-1;;;;5098:23:0::1;::::0;;5140:14:::1;::::0;-1:-1:-1;45097:50:136;;5140:14:0::1;::::0;45085:2:136;45070:18;5140:14:0::1;;;;;;;5064:101;4092:1079;;;;;3643:542:19::0;;;;:::o;30557:164::-;-1:-1:-1;;;;;;29098:19:61;;30615:38:19;29098:19:61;;;:14;:19;;;;;30673:40:19;28986:139:61;21219:684;-1:-1:-1;;;;;;21363:20:61;;21337:23;21363:20;;;:14;:20;;;;;;;;;:31;;;21413:32;;21443:1;21413:32;;;;;;;;;21286:38;;21363:31;;21413:32;;21443:1;21413:32;;;;;;;;;-1:-1:-1;21413:32:61;21405:40;;21456:9;21476:293;21494:1;21487:4;:8;21476:293;;;21542:15;-1:-1:-1;;;;;;21577:9:61;;21521:11;21577:9;21573:185;;21607:5;;;21573:185;21696:4;21653:5;21659:4;21653:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;21653:48:61;;;:11;;;;;;;;;;:48;21720:22;;;;;-1:-1:-1;21497:7:61;;21476:293;;;21866:19;;-1:-1:-1;21873:5:61;21219:684;-1:-1:-1;21219:684:61:o;29564:126:19:-;-1:-1:-1;;;;;;29651:24:19;;29613:2;29651:24;;;:19;:24;;;;;:19;:30;;-1:-1:-1;;;;;;;;;;;29635:47:19;;20759:24:61;;29651:30:19;;;29635:47;;;;;;:::i;:::-;;;;;;;;;29628:54;;29564:126;;;:::o;18681:914:61:-;18793:43;;:::i;:::-;18959:628;;;;;;;;;19024:16;;-1:-1:-1;;;;;;;;;;;18911:30:61;18959:628;;;19024:16;;:21;:64;;19072:16;;;;19024:64;;;19048:21;;;;19024:64;18959:628;;;;19115:15;;18959:628;;;;;19115:15;;;;;;:39;;-1:-1:-1;19134:20:61;;;;;;;19115:39;18959:628;;;;19184:17;;18959:628;;;;;-1:-1:-1;;;19184:17:61;;;;:22;:67;;19234:17;;-1:-1:-1;;;19234:17:61;;;;19184:67;;;19209:22;;-1:-1:-1;;;19209:22:61;;;;19184:67;18959:628;;;;;;19281:18;;18959:628;;;;;-1:-1:-1;;;19281:18:61;;;:23;:70;;19333:18;;-1:-1:-1;;;19333:18:61;;;;19281:70;;;19307:23;;-1:-1:-1;;;19307:23:61;;;;19281:70;18959:628;;;;19384:21;;18959:628;;;;;-1:-1:-1;;;19384:21:61;;;;:26;:79;;19442:21;;-1:-1:-1;;;19442:21:61;;;;19384:79;;;19413:26;;-1:-1:-1;;;19413:26:61;;;;19384:79;18959:628;;;;;;19492:17;;18959:628;;;;;-1:-1:-1;;;19492:17:61;;;:22;:67;;19542:17;;-1:-1:-1;;;19542:17:61;;;;19492:67;;;19517:22;;-1:-1:-1;;;19517:22:61;;;;19492:67;18959:628;;;;18952:635;18681:914;-1:-1:-1;;;18681:914:61:o;1796:162:1:-;19686:7:19;1710:6:1;-1:-1:-1;;;;;1710:6:1;735:10:3;1855:23:1;1851:101;;1901:40;;-1:-1:-1;;;1901:40:1;;735:10:3;1901:40:1;;;4513:51:136;4486:18;;1901:40:1;4367:203:136;608:229:63;2675:26:19;;;;;;;;;;;;-1:-1:-1;;;2675:26:19;;;;794:8:63;710:107;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;710:107:63;;;;;;;;;;-1:-1:-1;;;682:147:63;;;;;;;:::i;30151:88:19:-;30204:27;;;;;;;;;;;;;;-1:-1:-1;;;30204:27:19;;;:7;:27::i;31511:198:116:-;31649:6;31601:4;31607:22;27997:17;28009:4;27997:11;:17::i;:::-;27996:18;:72;;;;;28052:16;28035:33;;;;;;;;:::i;:::-;:4;:13;;;:33;;;;;;;;:::i;:::-;;27996:72;27974:146;;;;-1:-1:-1;;;27974:146:116;;46004:2:136;27974:146:116;;;45986:21:136;46043:2;46023:18;;;46016:30;46082:25;46062:18;;;46055:53;46125:18;;27974:146:116;45802:347:136;27974:146:116;31680:21:::1;:4;:10;;;:19;:21::i;:::-;31673:28;;28151:29:::0;28169:4;:10;;;28151:17;:29::i;:::-;28135:4;:13;;:45;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;31511:198;;;;;:::o;1480:156:131:-;1570:13;1563:20;;-1:-1:-1;;;;;;1563:20:131;;;1594:34;1619:8;1594:24;:34::i;440:160:63:-;537:10;532:61;;564:17;572:8;564:7;:17::i;:::-;440:160;;:::o;1721:245:131:-;735:10:3;;1818:14:131;:12;:14::i;:::-;-1:-1:-1;;;;;1818:24:131;;1814:108;;1859:51;;-1:-1:-1;;;1859:51:131;;46356:2:136;1859:51:131;;;46338:21:136;46395:2;46375:18;;;46368:30;46434:34;46414:18;;;46407:62;-1:-1:-1;;;46485:18:136;;;46478:39;46534:19;;1859:51:131;46154:405:136;1814:108:131;1932:26;1951:6;1932:18;:26::i;1532:382:127:-;1587:17;1622:16;1641:19;3534:4;3528:11;-1:-1:-1;;;3612:79:127;;730:6;3397:16;3797;3790:4;3781:14;;3774:40;-1:-1:-1;;;3901:4:127;3892:14;;3885:90;3528:11;3328:665;1641:19;1622:38;;1760:4;1755:3;1752:1;1745:20;1732:33;-1:-1:-1;;;;;;1802:23:127;;1794:59;;;;-1:-1:-1;;;1794:59:127;;46766:2:136;1794:59:127;;;46748:21:136;46805:2;46785:18;;;46778:30;46844:25;46824:18;;;46817:53;46887:18;;1794:59:127;46564:347:136;1794:59:127;-1:-1:-1;;;;;1869:37:127;;730:6;-1:-1:-1;;;;;1869:37:127;1876:10;-1:-1:-1;;;;;1869:37:127;;;;;;;;;;;1611:303;1532:382;:::o;30247:302:19:-;30404:23;;30360:4;;30404:27;;;;;;:77;;;30480:1;30452:11;:25;;;:29;;;30404:77;:126;;;;-1:-1:-1;;30502:24:19;;;:28;;;;;30247:302::o;27189:123:61:-;27248:7;27296:6;27285:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;27275:29;;;;;;27268:36;;27189:123;;;:::o;29133:250::-;29235:18;;;;29197:4;;29235:32;;;:76;;-1:-1:-1;29294:11:61;;;;-1:-1:-1;;;29294:11:61;;;;29288:18;;;;;;;;:::i;:::-;:23;;;;29235:76;:129;;;-1:-1:-1;;29332:18:61;;;-1:-1:-1;;;29332:18:61;;-1:-1:-1;;;;;29332:18:61;:32;;;29133:250::o;29099:457:19:-;29217:7;-1:-1:-1;;;;;;29394:4:19;29217:7;29465:35;29483:8;29493:6;29465:17;:35::i;:::-;29455:46;;;;;;;29312:208;;;;;;;;-1:-1:-1;;;;;;47139:26:136;;;;47127:39;;47203:2;47199:15;;;;-1:-1:-1;;47195:53:136;47191:1;47182:11;;47175:74;47274:2;47265:12;;47258:28;47311:2;47302:12;;47295:28;47348:2;47339:12;;46916:441;29312:208:19;;;;-1:-1:-1;;29312:208:19;;;;;;;;;29284:251;;29312:208;29284:251;;;;;29099:457;-1:-1:-1;;;29099:457:19:o;28864:227::-;28975:12;29043:8;29066:6;29012:71;;;;;;;;;:::i;:::-;;;;;;;;;;;;;29005:78;;28864:227;;;;:::o;30729:1033::-;31016:219;;-1:-1:-1;;;;;;31016:219:19;;30988:6;;31016:20;;:56;;:219;;31091:7;;31118:9;;31147:7;;31173:14;;31206;;31016:219;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;31016:219:19;;;;;;;;-1:-1:-1;;31016:219:19;;;;;;;;;;;;:::i;:::-;;;31012:743;;;;:::i;:::-;31328:10;31294:247;31357:23;31366:13;31371:7;31366:4;:13::i;31357:23::-;31399:7;31425:9;31453:7;31479:14;31512;31294:247;;;;;;;;;;;:::i;:::-;;;;;;;;31563:10;-1:-1:-1;31556:17:19;;2543:215:1;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:1;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:1;;2700:1:::1;2672:31;::::0;::::1;4513:51:136::0;4486:18;;2672:31:1::1;4367:203:136::0;31770:589:19;31953:8;31964:23;31973:13;31978:7;31973:4;:13::i;31964:23::-;31953:34;;31998:43;32044:21;32060:4;32044:15;:21::i;:::-;32076:35;;:21;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;32076:35:19;;;;;;;;;;;;;-1:-1:-1;;32076:35:19;-1:-1:-1;;;32076:35:19;;;;;;;-1:-1:-1;;;;32076:35:19;;;;;-1:-1:-1;;;32076:35:19;;;;;;;;;;;;-1:-1:-1;;;;32076:35:19;-1:-1:-1;;;32076:35:19;;;;;-1:-1:-1;;;;32076:35:19;;-1:-1:-1;;;32076:35:19;;;;;;;;;;;:21;;-1:-1:-1;32122:84:19;;32166:15;;;:28;;-1:-1:-1;;32166:28:19;;;32122:84;735:10:3;-1:-1:-1;;;;;32221:130:19;;32288:4;32307:7;32329:11;32221:130;;;;;;;;:::i;:::-;;;;;;;;31942:417;;31770:589;;:::o;9071:205:0:-;9129:30;;3147:66;9186:27;8819:122;27622:124:116;27690:4;27714:24;27726:4;:11;;;27714;:24::i;17873:211:118:-;17981:6;17945:4;966:1;1787:8;1769:26;;:4;:14;;;:26;;;1765:101;;1833:14;;;;;1813:45;;-1:-1:-1;;;1813:45:118;;49662:4:136;49650:17;;;1813:45:118;;;49632:36:136;49704:17;;;49684:18;;;49677:45;49605:18;;1813:45:118;49462:266:136;1765:101:118;18006:72:::1;18025:4;:11;;;18045:4;:26;;;18006:10;:72::i;32032:743:116:-:0;32111:20;32186:10;:4;2152:11:118;:16;;:23;2130:18;;;;;:45;;;2043:138;32186:10:116;32181:587;;32235:1;32217:4;:14;;;:19;;;32213:544;;32333:14;;;;-1:-1:-1;;;32292:40:116;:56;;;;;;;;;:::i;:::-;;32264:87;;;;;;;;:::i;32213:544::-;32391:4;:14;;;:19;;32409:1;32391:19;32387:370;;32435:4;:26;;;:32;;32465:2;32435:32;:68;;;;32471:4;:26;;;:32;;32501:2;32471:32;32435:68;32431:311;;;-1:-1:-1;32535:19:116;;32032:743;-1:-1:-1;32032:743:116:o;32431:311::-;32632:2;32602:4;:26;;;:32;;;;:68;;;;;32668:2;32638:4;:26;;;:32;;;;32602:68;32598:144;;;-1:-1:-1;32702:20:116;;32032:743;-1:-1:-1;32032:743:116:o;32598:144::-;32032:743;;;:::o;2912:187:1:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:1;;;-1:-1:-1;;;;;;3020:17:1;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;36740:224:116:-;36803:4;36850:32;36842:4;:40;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;36911:34:116;36903:4;:42;;;;;;;;:::i;:::-;;36820:136;36740:224;-1:-1:-1;;36740:224:116:o;8833:697:118:-;8972:6;9018:2;8994:21;:26;;;8990:77;;;-1:-1:-1;9031:28:118;;;;;8990:77;9077:21;:27;;9102:2;9077:27;9073:75;;9122:18;:6;:16;:18::i;:::-;9115:25;;;;;;9073:75;9158:21;:27;;9183:2;9158:27;9154:76;;9203:19;:6;:17;:19::i;:::-;9196:26;;;;;;9154:76;9240:21;:27;;9265:2;9240:27;9236:76;;9285:19;:6;:17;:19::i;:::-;9278:26;;;;;;9236:76;9322:21;:27;;9347:2;9322:27;9318:76;;9367:19;:6;:17;:19::i;:::-;9360:26;;;;9318:76;9404:21;:27;;9429:2;9404:27;9400:67;;-1:-1:-1;;;;;;9442:17:118;;9400:67;9480:44;;-1:-1:-1;;;9480:44:118;;49907:4:136;49895:17;;9480:44:118;;;49877:36:136;49850:18;;9480:44:118;49733:186:136;13731:315:117;13857:11;13808:6;:13;;;13823:6;:11;;;:18;1012:6;1004:5;:14;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;50098:25:136;;;50139:18;;;50132:34;;;50071:18;;1036:31:117;49924:248:136;1000:75:117;13900:11;;13932:13:::1;::::0;::::1;::::0;;13985:25;;;13999:1:::1;13985:25:::0;13979:32;;-1:-1:-1;13932:13:117;;;14024:16:::1;13932:13:::0;14024:16:::1;:::i;:::-;;;::::0;::::1;13873:173;;13731:315:::0;;;;;:::o;14288:323::-;14419:12;14366:6;:13;;;14382:1;14366:17;;;;:::i;:::-;14385:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;50098:25:136;;;50139:18;;;50132:34;;;50071:18;;1036:31:117;49924:248:136;1000:75:117;14463:11;;14495:13:::1;::::0;::::1;::::0;;14562:1:::1;14548:25:::0;;;;;14542:32;;-1:-1:-1;14495:13:117;;14587:18:::1;14562:1:::0;14495:13;14587:18:::1;:::i;:::-;::::0;;-1:-1:-1;14288:323:117;;;-1:-1:-1;;;;;14288:323:117:o;14853:::-;14984:12;14931:6;:13;;;14947:1;14931:17;;;;:::i;:::-;14950:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;50098:25:136;;;50139:18;;;50132:34;;;50071:18;;1036:31:117;49924:248:136;1000:75:117;15028:11;;15060:13:::1;::::0;::::1;::::0;;15127:1:::1;15113:25:::0;;;;;15107:32;;-1:-1:-1;15060:13:117;;15152:18:::1;15127:1:::0;15060:13;15152:18:::1;:::i;15418:323::-:0;15549:12;15496:6;:13;;;15512:1;15496:17;;;;:::i;:::-;15515:11;;:18;1004:14;;;1000:75;;;1036:31;;-1:-1:-1;;;1036:31:117;;;;;50098:25:136;;;50139:18;;;50132:34;;;50071:18;;1036:31:117;49924:248:136;1000:75:117;15593:11;;15625:13:::1;::::0;::::1;::::0;;15692:1:::1;15678:25:::0;;;;;15672:32;;-1:-1:-1;15625:13:117;;15717:18:::1;15692:1:::0;15625:13;15717:18:::1;:::i;-1:-1:-1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:149:136:-;-1:-1:-1;;;;;;106:32:136;;96:43;;86:71;;153:1;150;143:12;168:289;252:6;305:2;293:9;284:7;280:23;276:32;273:52;;;321:1;318;311:12;273:52;360:9;347:23;379:48;421:5;379:48;:::i;462:300::-;515:3;553:5;547:12;580:6;575:3;568:19;636:6;629:4;622:5;618:16;611:4;606:3;602:14;596:47;688:1;681:4;672:6;667:3;663:16;659:27;652:38;751:4;744:2;740:7;735:2;727:6;723:15;719:29;714:3;710:39;706:50;699:57;;;462:300;;;;:::o;767:127::-;828:10;823:3;819:20;816:1;809:31;859:4;856:1;849:15;883:4;880:1;873:15;899:138;978:1;971:5;968:12;958:46;;984:18;;:::i;:::-;1013;;899:138::o;1042:::-;1121:1;1114:5;1111:12;1101:46;;1127:18;;:::i;1185:246::-;1245:42;1283:3;1275:5;1269:12;1245:42;:::i;:::-;1340:4;1329:16;;;1323:23;-1:-1:-1;;;;;1319:49:136;1303:14;;;1296:73;1418:4;1407:16;;;1401:23;1385:14;;1378:47;1185:246::o;1531:468::-;1631:8;1623:5;1617:12;1613:27;1608:3;1601:40;1704:4;1697:5;1693:16;1687:23;1680:31;1673:39;1666:4;1661:3;1657:14;1650:63;1774:8;1766:4;1759:5;1755:16;1749:23;1745:38;1738:4;1733:3;1729:14;1722:62;1845:8;1837:4;1830:5;1826:16;1820:23;1816:38;1809:4;1804:3;1800:14;1793:62;1916:6;1908:4;1901:5;1897:16;1891:23;1887:36;1880:4;1875:3;1871:14;1864:60;1985:6;1977:4;1970:5;1966:16;1960:23;1956:36;1949:4;1944:3;1940:14;1933:60;;;1531:468::o;2135:394::-;2226:5;2220:12;2217:1;2206:27;2201:3;2194:40;-1:-1:-1;;;;;2287:4:136;2280:5;2276:16;2270:23;2266:48;2259:4;2254:3;2250:14;2243:72;2378:4;2371:5;2367:16;2361:23;2358:1;2347:38;2340:4;2335:3;2331:14;2324:62;-1:-1:-1;;;;;2439:4:136;2432:5;2428:16;2422:23;2418:48;2411:4;2406:3;2402:14;2395:72;2516:4;2509:5;2505:16;2499:23;2492:4;2487:3;2483:14;2476:47;;;2135:394::o;2534:1572::-;2617:5;2611:12;2606:3;2599:25;2687:4;2680:5;2676:16;2670:23;2667:1;2656:38;2649:4;2644:3;2640:14;2633:62;2581:3;2741:4;2734:5;2730:16;2724:23;2779:6;2772:4;2767:3;2763:14;2756:30;2807:60;2859:6;2854:3;2850:16;2836:12;2807:60;:::i;:::-;2795:72;;2915:4;2908:5;2904:16;2898:23;2963:3;2957:4;2953:14;2946:4;2941:3;2937:14;2930:38;3001:4;2995;2991:15;3015:52;3062:4;3045:14;3039:21;3015:52;:::i;:::-;3124:4;3104:25;;;3098:32;3163:4;3146:15;;;3139:29;3219:21;;3249:22;;;;3386:25;;;;3299:4;3345:1;3341:14;;;3331:25;;3327:36;;;3289:15;;;;-1:-1:-1;3439:271:136;3453:6;3450:1;3447:13;3439:271;;;3543:2;3539:7;3532:4;3524:6;3520:17;3516:31;3509:5;3502:46;3571:51;3615:6;3606;3600:13;3571:51;:::i;:::-;3657:4;3645:17;;;;3561:61;;-1:-1:-1;3684:16:136;;;;;3475:1;3468:9;3439:271;;;3443:3;;;3758:4;3751:5;3747:16;3741:23;3719:45;;3773:56;3823:4;3818:3;3814:14;3798;3773:56;:::i;:::-;3877:4;3870:5;3866:16;3860:23;3838:45;;3892:66;3952:4;3947:3;3943:14;3927;3892:66;:::i;:::-;4006:4;3999:5;3995:16;3989:23;3967:45;;4021:57;4070:6;4065:3;4061:16;4045:14;4021:57;:::i;4111:251::-;4286:2;4275:9;4268:21;4249:4;4306:50;4352:2;4341:9;4337:18;4329:6;4306:50;:::i;4767:347::-;4818:8;4828:6;4882:3;4875:4;4867:6;4863:17;4859:27;4849:55;;4900:1;4897;4890:12;4849:55;-1:-1:-1;4923:20:136;;-1:-1:-1;;;;;4955:30:136;;4952:50;;;4998:1;4995;4988:12;4952:50;5035:4;5027:6;5023:17;5011:29;;5087:3;5080:4;5071:6;5063;5059:19;5055:30;5052:39;5049:59;;;5104:1;5101;5094:12;5049:59;4767:347;;;;;:::o;5119:409::-;5189:6;5197;5250:2;5238:9;5229:7;5225:23;5221:32;5218:52;;;5266:1;5263;5256:12;5218:52;5306:9;5293:23;-1:-1:-1;;;;;5331:6:136;5328:30;5325:50;;;5371:1;5368;5361:12;5325:50;5410:58;5460:7;5451:6;5440:9;5436:22;5410:58;:::i;:::-;5487:8;;5384:84;;-1:-1:-1;5119:409:136;-1:-1:-1;;;;5119:409:136:o;5906:129::-;-1:-1:-1;;;;;5984:5:136;5980:30;5973:5;5970:41;5960:69;;6025:1;6022;6015:12;6040:132;6107:20;;6136:30;6107:20;6136:30;:::i;6177:389::-;6268:6;6276;6329:2;6317:9;6308:7;6304:23;6300:32;6297:52;;;6345:1;6342;6335:12;6297:52;6390:23;;;-1:-1:-1;6489:2:136;6474:18;;6461:32;6502;6461;6502;:::i;:::-;6553:7;6543:17;;;6177:389;;;;;:::o;7061:813::-;7249:4;7297:2;7286:9;7282:18;7327:2;7316:9;7309:21;7350:6;7385;7379:13;7416:6;7408;7401:22;7454:2;7443:9;7439:18;7432:25;;7516:2;7506:6;7503:1;7499:14;7488:9;7484:30;7480:39;7466:53;;7554:2;7546:6;7542:15;7575:1;7585:260;7599:6;7596:1;7593:13;7585:260;;;7692:2;7688:7;7676:9;7668:6;7664:22;7660:36;7655:3;7648:49;7720:45;7758:6;7749;7743:13;7720:45;:::i;:::-;7710:55;-1:-1:-1;7800:2:136;7823:12;;;;7788:15;;;;;7621:1;7614:9;7585:260;;;-1:-1:-1;7862:6:136;;7061:813;-1:-1:-1;;;;;;7061:813:136:o;7879:250::-;7962:6;8015:2;8003:9;7994:7;7990:23;7986:32;7983:52;;;8031:1;8028;8021:12;7983:52;-1:-1:-1;8076:23:136;;7879:250;-1:-1:-1;7879:250:136:o;8134:118::-;8220:5;8213:13;8206:21;8199:5;8196:32;8186:60;;8242:1;8239;8232:12;8257:539;8334:6;8342;8350;8403:2;8391:9;8382:7;8378:23;8374:32;8371:52;;;8419:1;8416;8409:12;8371:52;8459:9;8446:23;-1:-1:-1;;;;;8484:6:136;8481:30;8478:50;;;8524:1;8521;8514:12;8478:50;8563:58;8613:7;8604:6;8593:9;8589:22;8563:58;:::i;:::-;8640:8;;-1:-1:-1;8537:84:136;-1:-1:-1;;8725:2:136;8710:18;;8697:32;8738:28;8697:32;8738:28;:::i;:::-;8785:5;8775:15;;;8257:539;;;;;:::o;8801:202::-;-1:-1:-1;;;;;;8963:33:136;;;;8945:52;;8933:2;8918:18;;8801:202::o;9008:117::-;9094:5;9091:1;9080:20;9073:5;9070:31;9060:59;;9115:1;9112;9105:12;9130:1219;9277:6;9285;9293;9301;9309;9317;9370:3;9358:9;9349:7;9345:23;9341:33;9338:53;;;9387:1;9384;9377:12;9338:53;9427:9;9414:23;-1:-1:-1;;;;;9452:6:136;9449:30;9446:50;;;9492:1;9489;9482:12;9446:50;9531:58;9581:7;9572:6;9561:9;9557:22;9531:58;:::i;:::-;9608:8;;-1:-1:-1;9505:84:136;-1:-1:-1;;9693:2:136;9678:18;;9665:32;9706:28;9665:32;9706:28;:::i;:::-;9753:5;-1:-1:-1;9810:2:136;9795:18;;9782:32;9845:1;9833:14;;9823:42;;9861:1;9858;9851:12;9823:42;9884:7;-1:-1:-1;9944:2:136;9929:18;;9916:32;-1:-1:-1;;;;;9960:32:136;;9957:52;;;10005:1;10002;9995:12;9957:52;10028:24;;10083:4;10075:13;;10071:27;-1:-1:-1;10061:55:136;;10112:1;10109;10102:12;10061:55;10152:2;10139:16;-1:-1:-1;;;;;10170:6:136;10167:30;10164:50;;;10210:1;10207;10200:12;10164:50;10263:7;10258:2;10248:6;10245:1;10241:14;10237:2;10233:23;10229:32;10226:45;10223:65;;;10284:1;10281;10274:12;10223:65;10315:2;10311;10307:11;10297:21;;10337:6;10327:16;;;;9130:1219;;;;;;;;:::o;10354:842::-;10451:6;10459;10467;10475;10483;10536:2;10524:9;10515:7;10511:23;10507:32;10504:52;;;10552:1;10549;10542:12;10504:52;10592:9;10579:23;-1:-1:-1;;;;;10617:6:136;10614:30;10611:50;;;10657:1;10654;10647:12;10611:50;10696:58;10746:7;10737:6;10726:9;10722:22;10696:58;:::i;:::-;10773:8;;-1:-1:-1;10670:84:136;-1:-1:-1;;10858:2:136;10843:18;;10830:32;10871:28;10830:32;10871:28;:::i;:::-;10918:5;-1:-1:-1;10976:2:136;10961:18;;10948:32;-1:-1:-1;;;;;10992:32:136;;10989:52;;;11037:1;11034;11027:12;10989:52;11076:60;11128:7;11117:8;11106:9;11102:24;11076:60;:::i;:::-;10354:842;;;;-1:-1:-1;10354:842:136;;-1:-1:-1;11155:8:136;;11050:86;10354:842;-1:-1:-1;;;10354:842:136:o;11201:698::-;11315:6;11323;11331;11384:2;11372:9;11363:7;11359:23;11355:32;11352:52;;;11400:1;11397;11390:12;11352:52;11440:9;11427:23;-1:-1:-1;;;;;11465:6:136;11462:30;11459:50;;;11505:1;11502;11495:12;11459:50;11528:22;;11584:3;11566:16;;;11562:26;11559:46;;;11601:1;11598;11591:12;11559:46;11624:2;-1:-1:-1;11679:2:136;11664:18;;11651:32;-1:-1:-1;;;;;11695:32:136;;11692:52;;;11740:1;11737;11730:12;11692:52;11779:60;11831:7;11820:8;11809:9;11805:24;11779:60;:::i;:::-;11201:698;;11858:8;;-1:-1:-1;11753:86:136;;-1:-1:-1;;;;11201:698:136:o;11904:131::-;-1:-1:-1;;;;;11979:31:136;;11969:42;;11959:70;;12025:1;12022;12015:12;12040:247;12099:6;12152:2;12140:9;12131:7;12127:23;12123:32;12120:52;;;12168:1;12165;12158:12;12120:52;12207:9;12194:23;12226:31;12251:5;12226:31;:::i;12292:276::-;12496:3;12481:19;;12509:53;12485:9;12544:6;12509:53;:::i;12573:243::-;12755:3;12740:19;;12768:42;12744:9;12792:6;12768:42;:::i;12821:165::-;12890:5;12935:3;12926:6;12921:3;12917:16;12913:26;12910:46;;;12952:1;12949;12942:12;12910:46;-1:-1:-1;12974:6:136;12821:165;-1:-1:-1;12821:165:136:o;12991:258::-;13087:6;13140:3;13128:9;13119:7;13115:23;13111:33;13108:53;;;13157:1;13154;13147:12;13108:53;13180:63;13235:7;13224:9;13180:63;:::i;13254:127::-;13315:10;13310:3;13306:20;13303:1;13296:31;13346:4;13343:1;13336:15;13370:4;13367:1;13360:15;13386:225;13472:4;13464:6;13460:17;13543:6;13531:10;13528:22;-1:-1:-1;;;;;13495:10:136;13492:34;13489:62;13486:88;;;13554:18;;:::i;:::-;13590:2;13583:22;-1:-1:-1;13386:225:136:o;13616:223::-;13702:2;13694:6;13690:15;13771:6;13759:10;13756:22;-1:-1:-1;;;;;13723:10:136;13720:34;13717:62;13714:88;;;13782:18;;:::i;13844:249::-;13954:2;13935:13;;-1:-1:-1;;13931:27:136;13919:40;;-1:-1:-1;;;;;13974:34:136;;14010:22;;;13971:62;13968:88;;;14036:18;;:::i;:::-;14072:2;14065:22;-1:-1:-1;;13844:249:136:o;14098:187::-;14147:4;-1:-1:-1;;;;;14172:6:136;14169:30;14166:56;;;14202:18;;:::i;:::-;-1:-1:-1;14268:2:136;14247:15;-1:-1:-1;;14243:29:136;14274:4;14239:40;;14098:187::o;14290:753::-;14359:6;14412:2;14400:9;14391:7;14387:23;14383:32;14380:52;;;14428:1;14425;14418:12;14380:52;14468:9;14455:23;-1:-1:-1;;;;;14493:6:136;14490:30;14487:50;;;14533:1;14530;14523:12;14487:50;14556:22;;14609:4;14601:13;;14597:27;-1:-1:-1;14587:55:136;;14638:1;14635;14628:12;14587:55;14678:2;14665:16;14700:36;14729:6;14700:36;:::i;:::-;14765:2;14759:9;14777:31;14805:2;14797:6;14777:31;:::i;:::-;14832:6;14824;14817:22;14880:7;14875:2;14866:6;14862:2;14858:15;14854:24;14851:37;14848:57;;;14901:1;14898;14891:12;14848:57;14957:6;14952:2;14948;14944:11;14939:2;14931:6;14927:15;14914:50;15010:1;14984:19;;;15005:2;14980:28;14973:39;;;;-1:-1:-1;14988:6:136;14290:753;-1:-1:-1;;;;14290:753:136:o;15494:231::-;15643:2;15632:9;15625:21;15606:4;15663:56;15715:2;15704:9;15700:18;15692:6;15663:56;:::i;16145:690::-;16262:6;16270;16278;16286;16339:2;16327:9;16318:7;16314:23;16310:32;16307:52;;;16355:1;16352;16345:12;16307:52;16395:9;16382:23;-1:-1:-1;;;;;16420:6:136;16417:30;16414:50;;;16460:1;16457;16450:12;16414:50;16499:58;16549:7;16540:6;16529:9;16525:22;16499:58;:::i;:::-;16576:8;;-1:-1:-1;16473:84:136;-1:-1:-1;;16661:2:136;16646:18;;16633:32;16674:28;16633:32;16674:28;:::i;:::-;16145:690;;;;-1:-1:-1;16721:5:136;;16799:2;16784:18;16771:32;;-1:-1:-1;;16145:690:136:o;16840:119::-;16925:8;16918:5;16914:20;16907:5;16904:31;16894:59;;16949:1;16946;16939:12;16964:428;17056:6;17064;17117:2;17105:9;17096:7;17092:23;17088:32;17085:52;;;17133:1;17130;17123:12;17085:52;17172:9;17159:23;17191:48;17233:5;17191:48;:::i;:::-;17258:5;-1:-1:-1;17315:2:136;17300:18;;17287:32;17328;17287;17328;:::i;17579:965::-;17696:6;17704;17712;17720;17728;17736;17789:3;17777:9;17768:7;17764:23;17760:33;17757:53;;;17806:1;17803;17796:12;17757:53;17846:9;17833:23;-1:-1:-1;;;;;17871:6:136;17868:30;17865:50;;;17911:1;17908;17901:12;17865:50;17950:58;18000:7;17991:6;17980:9;17976:22;17950:58;:::i;:::-;18027:8;;-1:-1:-1;17924:84:136;-1:-1:-1;;18112:2:136;18097:18;;18084:32;18125:28;18084:32;18125:28;:::i;:::-;18172:5;-1:-1:-1;18229:2:136;18214:18;;18201:32;18264:1;18252:14;;18242:42;;18280:1;18277;18270:12;18242:42;18303:7;-1:-1:-1;18362:2:136;18347:18;;18334:32;18375:33;18334:32;18375:33;:::i;:::-;17579:965;;;;-1:-1:-1;17579:965:136;;;;;18507:3;18492:19;;;18479:33;;-1:-1:-1;;17579:965:136:o;19102:556::-;19219:6;19227;19235;19288:3;19276:9;19267:7;19263:23;19259:33;19256:53;;;19305:1;19302;19295:12;19256:53;19345:9;19332:23;-1:-1:-1;;;;;19370:6:136;19367:30;19364:50;;;19410:1;19407;19400:12;19364:50;19449:58;19499:7;19490:6;19479:9;19475:22;19449:58;:::i;:::-;19526:8;;-1:-1:-1;19423:84:136;-1:-1:-1;19580:72:136;;-1:-1:-1;19644:7:136;19639:2;19624:18;;19580:72;:::i;:::-;19570:82;;19102:556;;;;;:::o;19663:393::-;19768:6;19776;19829:3;19817:9;19808:7;19804:23;19800:33;19797:53;;;19846:1;19843;19836:12;19797:53;19885:9;19872:23;19904:31;19929:5;19904:31;:::i;:::-;19954:5;-1:-1:-1;19978:72:136;20042:7;20037:2;20022:18;;19978:72;:::i;:::-;19968:82;;19663:393;;;;;:::o;20061:127::-;20122:10;20117:3;20113:20;20110:1;20103:31;20153:4;20150:1;20143:15;20177:4;20174:1;20167:15;20193:380;20272:1;20268:12;;;;20315;;;20336:61;;20390:4;20382:6;20378:17;20368:27;;20336:61;20443:2;20435:6;20432:14;20412:18;20409:38;20406:161;;20489:10;20484:3;20480:20;20477:1;20470:31;20524:4;20521:1;20514:15;20552:4;20549:1;20542:15;20819:136;20897:13;;20919:30;20897:13;20919:30;:::i;20960:164::-;21037:13;;21090:1;21079:20;;;21069:31;;21059:59;;21114:1;21111;21104:12;21129:1000;21223:6;21283:3;21271:9;21262:7;21258:23;21254:33;21299:2;21296:22;;;21314:1;21311;21304:12;21296:22;-1:-1:-1;21363:2:136;21357:9;21405:3;21393:16;;-1:-1:-1;;;;;21424:34:136;;21460:22;;;21421:62;21418:88;;;21486:18;;:::i;:::-;21522:2;21515:22;21559:16;;21584:28;21559:16;21584:28;:::i;:::-;21621:21;;21687:2;21672:18;;21666:25;21700:32;21666:25;21700:32;:::i;:::-;21760:2;21748:15;;21741:32;21806:47;21849:2;21834:18;;21806:47;:::i;:::-;21801:2;21793:6;21789:15;21782:72;21899:2;21888:9;21884:18;21878:25;21912:32;21936:7;21912:32;:::i;:::-;21972:2;21960:15;;21953:32;22051:3;22036:19;;;22030:26;22072:16;;;22065:33;;;;-1:-1:-1;21964:6:136;21129:1000;-1:-1:-1;21129:1000:136:o;22781:267::-;22870:6;22865:3;22858:19;22922:6;22915:5;22908:4;22903:3;22899:14;22886:43;-1:-1:-1;22974:1:136;22949:16;;;22967:4;22945:27;;;22938:38;;;;23030:2;23009:15;;;-1:-1:-1;;23005:29:136;22996:39;;;22992:50;;22781:267::o;23053:369::-;23285:10;23280:3;23276:20;23268:6;23264:33;23253:9;23246:52;23334:2;23329;23318:9;23314:18;23307:30;23227:4;23354:62;23412:2;23401:9;23397:18;23389:6;23381;23354:62;:::i;23427:267::-;23496:6;23549:2;23537:9;23528:7;23524:23;23520:32;23517:52;;;23565:1;23562;23555:12;23517:52;23597:9;23591:16;23616:48;23658:5;23616:48;:::i;23699:501::-;23758:5;23765:6;23825:3;23812:17;23911:2;23907:7;23896:8;23880:14;23876:29;23872:43;23852:18;23848:68;23838:96;;23930:1;23927;23920:12;23838:96;23958:33;;24062:4;24049:18;;;-1:-1:-1;24010:21:136;;-1:-1:-1;;;;;;24079:30:136;;24076:50;;;24122:1;24119;24112:12;24076:50;24169:6;24153:14;24149:27;24142:5;24138:39;24135:59;;;24190:1;24187;24180:12;24205:1210;24543:3;24532:9;24525:22;24506:4;24570:63;24628:3;24617:9;24613:19;24605:6;24597;24570:63;:::i;:::-;24683:6;24680:1;24669:21;24664:2;24653:9;24649:18;24642:49;24700:51;24747:2;24736:9;24732:18;24724:6;24700:51;:::i;:::-;24787:22;;;24782:2;24767:18;;24760:50;24845:22;;;24895:2;24883:15;;;;24941:1;24937:14;;;24925:27;;24921:36;24980:6;25004:1;25014:372;25028:6;25025:1;25022:13;25014:372;;;25093:19;;;-1:-1:-1;;25089:33:136;25077:46;;25172:47;25212:6;25204;25172:47;:::i;:::-;25242:64;25299:6;25284:13;25269;25242:64;:::i;:::-;25341:2;25364:12;;;;25232:74;;-1:-1:-1;25329:15:136;;;;;-1:-1:-1;;25050:1:136;25043:9;25014:372;;;-1:-1:-1;25403:6:136;;24205:1210;-1:-1:-1;;;;;;;;;;;24205:1210:136:o;25420:179::-;25455:3;25497:1;25479:16;25476:23;25473:120;;;25543:1;25540;25537;25522:23;-1:-1:-1;25580:1:136;25574:8;25569:3;25565:18;25420:179;:::o;25604:628::-;25643:3;25685:4;25667:16;25664:26;25661:39;;;25604:628;:::o;25661:39::-;25727:2;25721:9;25767:16;-1:-1:-1;;25763:29:136;25760:1;25721:9;25739:54;25822:4;25816:11;25896:16;25889:4;25881:6;25877:17;25874:39;-1:-1:-1;;;;;25845:6:136;25842:30;25839:75;25836:88;;;25917:5;;25604:628;:::o;25836:88::-;25954:6;25948:4;25944:17;25990:3;25984:10;-1:-1:-1;;;;;26009:6:136;26006:30;26003:43;;;26039:5;;;;25604:628;:::o;26003:43::-;26104:16;26094:27;;-1:-1:-1;;26090:40:136;26065:16;;;26083:4;26061:27;26058:73;26055:86;;;26134:5;;;;25604:628;:::o;26055:86::-;26150:57;26201:4;26192:6;26184;26180:19;26176:30;26170:4;26150:57;:::i;:::-;-1:-1:-1;26223:3:136;25604:628;-1:-1:-1;;;25604:628:136:o;26237:1325::-;26640:10;26635:3;26631:20;26623:6;26619:33;26608:9;26601:52;26689:3;26684:2;26673:9;26669:18;26662:31;26582:4;26716:63;26774:3;26763:9;26759:19;26751:6;26743;26716:63;:::i;:::-;26829:6;26826:1;26815:21;26810:2;26799:9;26795:18;26788:49;26846:51;26893:2;26882:9;26878:18;26870:6;26846:51;:::i;:::-;26934:22;;;26928:3;26913:19;;26906:51;26992:22;;;27042:2;27030:15;;;;27088:1;27084:14;;;27072:27;;27068:36;27127:6;27151:1;27161:372;27175:6;27172:1;27169:13;27161:372;;;27240:19;;;-1:-1:-1;;27236:33:136;27224:46;;27319:47;27359:6;27351;27319:47;:::i;:::-;27389:64;27446:6;27431:13;27416;27389:64;:::i;:::-;27488:2;27511:12;;;;27379:74;;-1:-1:-1;27476:15:136;;;;;-1:-1:-1;;27197:1:136;27190:9;27161:372;;;-1:-1:-1;27550:6:136;;26237:1325;-1:-1:-1;;;;;;;;;;;;26237:1325:136:o;27567:284::-;27670:6;27723:2;27711:9;27702:7;27698:23;27694:32;27691:52;;;27739:1;27736;27729:12;27691:52;27771:9;27765:16;27790:31;27815:5;27790:31;:::i;27856:655::-;28162:3;28151:9;28144:22;28125:4;28189:63;28247:3;28236:9;28232:19;28224:6;28216;28189:63;:::i;:::-;28300:9;28292:6;28288:22;28283:2;28272:9;28268:18;28261:50;28328;28371:6;28363;28355;28328:50;:::i;:::-;28425:1;28414:21;;;;28409:2;28394:18;;28387:49;-1:-1:-1;;;;;;;28472:32:136;;;;28467:2;28452:18;;;28445:60;28320:58;27856:655;-1:-1:-1;;;;27856:655:136:o;28516:411::-;28625:6;28633;28686:2;28674:9;28665:7;28661:23;28657:32;28654:52;;;28702:1;28699;28692:12;28654:52;28734:9;28728:16;28753:48;28795:5;28753:48;:::i;:::-;28891:2;28876:18;;;;28870:25;28820:5;;28870:25;;-1:-1:-1;;;28516:411:136:o;28932:720::-;29281:10;29276:3;29272:20;29264:6;29260:33;29249:9;29242:52;29330:3;29325:2;29314:9;29310:18;29303:31;29223:4;29351:63;29409:3;29398:9;29394:19;29386:6;29378;29351:63;:::i;:::-;29343:71;;29464:6;29461:1;29450:21;29445:2;29434:9;29430:18;29423:49;29481:51;29528:2;29517:9;29513:18;29505:6;29481:51;:::i;:::-;-1:-1:-1;;;;;29569:32:136;;;;29563:3;29548:19;;29541:61;29589:3;29618:19;29611:35;28932:720;;-1:-1:-1;;;;;28932:720:136:o;29657:117::-;29742:6;29735:5;29731:18;29724:5;29721:29;29711:57;;29764:1;29761;29754:12;29779:132;29846:20;;29875:30;29846:20;29875:30;:::i;29916:245::-;29974:6;30027:2;30015:9;30006:7;30002:23;29998:32;29995:52;;;30043:1;30040;30033:12;29995:52;30082:9;30069:23;30101:30;30125:5;30101:30;:::i;30166:1467::-;30419:2;30401:21;;;30463:20;;30499:18;;;30492:33;30595:4;30583:17;;30570:31;30632:2;30617:18;;30610:35;30382:4;;30682:15;;30669:29;30707:32;30669:29;30707:32;:::i;:::-;30789:6;30776:20;30770:3;30755:19;;30748:49;30846:2;30834:15;;30821:29;30859:32;30821:29;30859:32;:::i;:::-;30941:6;30928:20;30922:3;30907:19;;30900:49;30998:3;30986:16;;30973:30;31012:32;30973:30;31012:32;:::i;:::-;-1:-1:-1;;;;;31081:32:136;31075:3;31060:19;;31053:61;31143:35;31173:3;31161:16;;31143:35;:::i;:::-;-1:-1:-1;;;;;2093:30:136;31258:4;31243:20;;2081:43;31309:57;31361:3;31349:16;;31353:6;31309:57;:::i;:::-;31403:4;31397:3;31386:9;31382:19;31375:33;31428:77;31500:3;31489:9;31485:19;31471:12;31455:14;31428:77;:::i;:::-;31417:88;;;31552:9;31547:3;31543:19;31536:4;31525:9;31521:20;31514:49;31580:47;31623:3;31615:6;31607;31580:47;:::i;31638:160::-;31729:13;;31771:2;31761:13;;31751:41;;31788:1;31785;31778:12;31803:160;31880:13;;31933:4;31922:16;;31912:27;;31902:55;;31953:1;31950;31943:12;31968:1655;32030:5;32078:4;32066:9;32061:3;32057:19;32053:30;32050:50;;;32096:1;32093;32086:12;32050:50;32129:2;32123:9;32141:32;32166:6;32141:32;:::i;:::-;32191:6;32182:15;;32226:9;32220:16;-1:-1:-1;;;;;32251:6:136;32248:30;32245:50;;;32291:1;32288;32281:12;32245:50;32314:22;;32366:2;32352:12;;;32348:21;32345:41;;;32382:1;32379;32372:12;32345:41;32417:2;32411:9;32429:34;32454:8;32429:34;:::i;:::-;32494:2;32488:9;-1:-1:-1;;;;;32512:8:136;32509:32;32506:52;;;32554:1;32551;32544:12;32506:52;32577:17;;32625:4;32617:13;;32613:23;-1:-1:-1;32603:51:136;;32650:1;32647;32640:12;32603:51;32683:2;32677:9;32705:36;32734:6;32705:36;:::i;:::-;32772:2;32766:9;32784:33;32814:2;32804:8;32784:33;:::i;:::-;32843:6;32833:8;32826:24;32893:3;32886:4;32877:6;32873:2;32869:15;32865:26;32862:35;32859:55;;;32910:1;32907;32900:12;32859:55;32965:6;32958:4;32954:2;32950:13;32943:4;32933:8;32929:19;32923:49;33022:1;33015:4;32992:21;;;32988:32;;32981:43;33033:26;;-1:-1:-1;33110:13:136;;;33104:20;33140:19;;;33133:36;-1:-1:-1;33178:24:136;;33237:49;;33265:20;;33237:49;:::i;:::-;33230:4;33222:6;33218:17;33211:76;33320:47;33363:2;33352:9;33348:18;33320:47;:::i;:::-;33315:2;33307:6;33303:15;33296:72;33401:47;33444:2;33433:9;33429:18;33401:47;:::i;:::-;33396:2;33388:6;33384:15;33377:72;33483:49;33527:3;33516:9;33512:19;33483:49;:::i;:::-;33477:3;33469:6;33465:16;33458:75;33567:49;33611:3;33600:9;33596:19;33567:49;:::i;:::-;33561:3;33553:6;33549:16;33542:75;;31968:1655;;;;:::o;33628:1157::-;33727:6;33780:2;33768:9;33759:7;33755:23;33751:32;33748:52;;;33796:1;33793;33786:12;33748:52;33829:9;33823:16;-1:-1:-1;;;;;33854:6:136;33851:30;33848:50;;;33894:1;33891;33884:12;33848:50;33917:22;;33973:4;33955:16;;;33951:27;33948:47;;;33991:1;33988;33981:12;33948:47;34024:2;34018:9;34036:32;34061:6;34036:32;:::i;:::-;34096:2;34090:9;34128:3;34121:5;34118:14;34108:42;;34146:1;34143;34136:12;34108:42;34159:21;;34213:54;34263:2;34255:11;;34213:54;:::i;:::-;34208:2;34196:15;;34189:79;34327:2;34319:11;;;34313:18;34347:15;;;34340:32;34431:2;34423:11;;;34417:18;34451:15;;;34444:32;34510:42;34547:3;34539:12;;34510:42;:::i;:::-;34504:3;34496:6;34492:16;34485:68;34592:3;34588:2;34584:12;34578:19;-1:-1:-1;;;;;34612:8:136;34609:32;34606:52;;;34654:1;34651;34644:12;34606:52;34692:61;34745:7;34734:8;34730:2;34726:17;34692:61;:::i;:::-;34686:3;34674:16;;34667:87;-1:-1:-1;34678:6:136;33628:1157;-1:-1:-1;;;;33628:1157:136:o;34790:127::-;34851:10;34846:3;34842:20;34839:1;34832:31;34882:4;34879:1;34872:15;34906:4;34903:1;34896:15;34922:191;-1:-1:-1;;;;;34990:26:136;;;35018;;;34986:59;;35057:27;;35054:53;;;35087:18;;:::i;35118:194::-;-1:-1:-1;;;;;35216:26:136;;;35188;;;35184:59;;35255:28;;35252:54;;;35286:18;;:::i;35317:214::-;35415:1;35404:16;;;35386;;;;35382:39;-1:-1:-1;;35436:34:136;;35482:18;35472:29;;35433:69;35430:95;;;35505:18;;:::i;35536:193::-;35570:3;35617:5;35614:1;35603:20;35651:16;35647:21;35638:7;35635:34;35632:60;;35672:18;;:::i;:::-;35712:1;35708:15;;35536:193;-1:-1:-1;;35536:193:136:o;35734:237::-;35772:7;35849:1;35846;35835:16;35831:1;35828;35817:16;35813:39;35886:11;35883:1;35872:26;35861:37;;35929:11;35920:7;35917:24;35907:58;;35945:18;;:::i;:::-;35907:58;35734:237;;;;:::o;35976:291::-;36015:1;-1:-1:-1;;;;;36046:1:136;36042:26;36087:3;36077:134;;36133:10;36128:3;36124:20;36121:1;36114:31;36168:4;36165:1;36158:15;36196:4;36193:1;36186:15;36077:134;36257:3;-1:-1:-1;;;;;36233:1:136;36229:26;36225:36;36220:41;;;35976:291;;;;:::o;38329:782::-;-1:-1:-1;;;;;38589:32:136;;38571:51;;38648:13;;38712:8;38697:24;;;38692:2;38677:18;;;38670:52;;;;38780:2;38776:18;;;38796:4;38772:29;38765:37;38758:45;38753:2;38738:18;;38731:73;38844:18;;;38840:33;;38835:2;38820:18;;38813:61;38919:2;38915:18;;;38911:33;38905:3;38890:19;;38883:62;38980:2;38976:18;;;38996:6;38972:31;38609:3;39005:19;;1489:31;38558:3;38543:19;;;39060:2;39056:18;;;39076:6;39052:31;39100:3;39085:19;;1489:31;39034:71;1436:90;39372:1048;39466:6;39526:3;39514:9;39505:7;39501:23;39497:33;39542:2;39539:22;;;39557:1;39554;39547:12;39539:22;-1:-1:-1;39606:2:136;39600:9;39618:32;39600:9;39618:32;:::i;:::-;39685:9;39672:23;39704:30;39728:5;39704:30;:::i;:::-;39743:21;;39816:2;39801:18;;39788:32;39829:30;39788:32;39829:30;:::i;:::-;39887:2;39875:15;;39868:32;39952:2;39937:18;;39924:32;39965;39924;39965;:::i;:::-;40025:2;40013:15;;40006:32;40090:2;40075:18;;40062:32;40103;40062;40103;:::i;:::-;40163:2;40151:15;;40144:32;40228:3;40213:19;;40200:33;40242:32;40200:33;40242:32;:::i;:::-;40302:3;40290:16;;40283:33;40350:38;40383:3;40368:19;;40350:38;:::i;:::-;40344:3;40332:16;;40325:64;40336:6;39372:1048;-1:-1:-1;;;39372:1048:136:o;40425:174::-;40469:11;40521:3;40508:17;40534:30;40558:5;40534:30;:::i;40825:174::-;40869:11;40921:3;40908:17;40934:30;40958:5;40934:30;:::i;41418:1160::-;41604:5;41591:19;41619:32;41643:7;41619:32;:::i;:::-;41683:8;41674:7;41670:22;41660:32;;41717:4;41711:11;41771:2;41759:8;41755:13;41751:2;41747:22;41744:30;41738:4;41731:44;41823:2;41816:5;41812:14;41799:28;41836:30;41858:7;41836:30;:::i;:::-;-1:-1:-1;;41894:24:136;;;;41891:32;;;41944:15;;41937:23;41933:2;41929:32;41963:10;41925:49;41888:87;41875:101;;42004:1;42053:2;42042:14;;42029:28;42066:32;42029:28;42066:32;:::i;:::-;42148:11;;-1:-1:-1;;42184:30:136;42224:2;42220:16;;;;42238;42216:39;42181:75;42168:89;;-1:-1:-1;42266:94:136;42317:42;42355:2;42344:14;;42317:42;:::i;:::-;40695:11;;-1:-1:-1;;;;40731:36:136;40777:2;40773:14;;;;40789:22;40769:43;40728:85;40715:99;;40604:216;42266:94;42369:95;42420:43;42458:3;42451:5;42447:15;42420:43;:::i;:::-;42414:4;41095:11;;-1:-1:-1;;;;41131:28:136;41185:2;41165:14;;;;-1:-1:-1;;;41161:35:136;41128:69;;;;41115:83;;41004:200;42369:95;42473:99;42528:43;42566:3;42559:5;42555:15;42528:43;:::i;:::-;42522:4;41304:11;;-1:-1:-1;;;;41340:28:136;41394:2;41374:14;;;;-1:-1:-1;;;41370:35:136;41337:69;;;;41324:83;;41209:204;42583:569;42892:3;42881:9;42874:22;42855:4;42913:63;42971:3;42960:9;42956:19;42948:6;42940;42913:63;:::i;:::-;43007:2;42992:18;;42985:34;;;;-1:-1:-1;43066:1:136;43055:21;;;;43050:2;43035:18;;43028:49;-1:-1:-1;;;;;43113:32:136;43108:2;43093:18;;;43086:60;42905:71;42583:569;-1:-1:-1;;42583:569:136:o;43932:1007::-;44030:6;44090:3;44078:9;44069:7;44065:23;44061:33;44106:2;44103:22;;;44121:1;44118;44111:12;44103:22;-1:-1:-1;44170:2:136;44164:9;44182:32;44164:9;44182:32;:::i;:::-;44242:9;44236:16;44261:30;44285:5;44261:30;:::i;:::-;44300:21;;44366:2;44351:18;;44345:25;44379:32;44345:25;44379:32;:::i;:::-;44439:2;44427:15;;44420:32;44485:47;44528:2;44513:18;;44485:47;:::i;:::-;44480:2;44472:6;44468:15;44461:72;44578:2;44567:9;44563:18;44557:25;44591:30;44613:7;44591:30;:::i;:::-;44649:2;44637:15;;44630:32;44707:3;44692:19;;44686:26;44721:32;44686:26;44721:32;:::i;:::-;44781:3;44769:16;;44762:33;44861:3;44846:19;;;44840:26;44882:16;;;44875:33;;;;-1:-1:-1;44773:6:136;43932:1007;-1:-1:-1;43932:1007:136:o;45158:212::-;45200:3;45238:5;45232:12;45282:6;45275:4;45268:5;45264:16;45259:3;45253:36;45344:1;45308:16;;45333:13;;;-1:-1:-1;45308:16:136;;45158:212;-1:-1:-1;45158:212:136:o;45375:422::-;45655:3;45683:30;45709:3;45701:6;45683:30;:::i;:::-;-1:-1:-1;;;45729:2:136;45722:16;45754:37;45788:1;45784:2;45780:10;45772:6;45754:37;:::i;47362:263::-;47537:3;47562:57;47588:30;47614:3;47606:6;47588:30;:::i;:::-;47580:6;47562:57;:::i;47630:589::-;47904:3;47893:9;47886:22;47867:4;47925:57;47977:3;47966:9;47962:19;47954:6;47925:57;:::i;:::-;47917:65;;48032:6;48029:1;48018:21;48013:2;48002:9;47998:18;47991:49;48049:51;48096:2;48085:9;48081:18;48073:6;48049:51;:::i;:::-;-1:-1:-1;;;;;48136:32:136;;;;48131:2;48116:18;;48109:60;48200:3;48185:19;48178:35;47630:589;;-1:-1:-1;;;47630:589:136:o;48224:704::-;48563:10;48558:3;48554:20;48546:6;48542:33;48531:9;48524:52;48612:3;48607:2;48596:9;48592:18;48585:31;48505:4;48633:57;48685:3;48674:9;48670:19;48662:6;48633:57;:::i;:::-;48625:65;;48740:6;48737:1;48726:21;48721:2;48710:9;48706:18;48699:49;48757:51;48804:2;48793:9;48789:18;48781:6;48757:51;:::i;:::-;-1:-1:-1;;;;;48845:32:136;;;;48839:3;48824:19;;48817:61;48865:3;48894:19;48887:35;48224:704;;-1:-1:-1;;;;48224:704:136:o;48933:524::-;49253:10;49248:3;49244:20;49236:6;49232:33;49221:9;49214:52;49302:3;49297:2;49286:9;49282:18;49275:31;49195:4;49323:57;49375:3;49364:9;49360:19;49352:6;49323:57;:::i;:::-;49315:65;;49389:62;49447:2;49436:9;49432:18;49424:6;49389:62;:::i;50177:135::-;50216:3;50237:17;;;50234:43;;50257:18;;:::i;:::-;-1:-1:-1;50304:1:136;50293:13;;50177:135::o;50317:125::-;50382:9;;;50403:10;;;50400:36;;;50416:18;;:::i",
  "source": "// SPDX-License-Identifier: MIT\r\npragma solidity >=0.8.0 <0.9.0;\r\n\r\nimport {\r\n    IWitAppliance,\r\n    IWitOracle,\r\n    IWitOracleAppliance,\r\n    IWitOracleQueriable,\r\n    IWitOracleRadonRegistry,\r\n    Witnet\r\n} from \"../WitOracle.sol\";\r\n\r\nimport {\r\n    IWitPriceFeeds,\r\n    IWitPriceFeedsAdmin,\r\n    IWitPriceFeedsConsumer,\r\n    WitPriceFeeds\r\n} from \"../WitPriceFeeds.sol\";\r\n\r\nimport {WitPriceFeedsDataLib} from \"../data/WitPriceFeedsDataLib.sol\";\r\nimport {WitPythChainlinkAggregator} from \"../mockups/WitPythChainlinkAggregator.sol\";\r\n\r\nimport {Clonable} from \"../patterns/Clonable.sol\";\r\nimport {Ownable, Ownable2Step} from \"../patterns/Ownable2Step.sol\";\r\n\r\n/// @title WitPriceFeedsV3: On-demand Price Feeds registry for EVM-compatible L1/L2 chains, \r\n/// natively powered by the Wit/Oracle blockchain, but yet capable of aggregating price \r\n/// updates from other on-chain price-feed oracles too, if required.\r\n/// \r\n/// Price feeds purely relying on the Wit/Oracle present some advantanges, though:\r\n/// - Anyone can permissionless pull and report price updates on-chain.\r\n/// - Updating the price requires paying no extra \"update fees\".\r\n/// - Prices can be extracted from independent and highly reputed exchanges and data providers.\r\n/// - Actual data sources for each price feed can be introspected on-chain.\r\n/// - Data source traceability in the Wit/Oracle blockchain is possible for every single price update.\r\n///\r\n/// Instances of this contract may also provide support for \"routed price feeds\" (computed as the \r\n/// product or mean average of up to other 8 different price feeds), as well as \"cascade price feeds\" \r\n/// (where multiple oracles could be used as backup when preferred ones don't manage to provide \r\n/// fresh enough updates for whatever reason).\r\n///\r\n/// Also, this contract allows simple plug-and-play integration from \r\n/// smart contracts, dapps and DeFi projects currently adapted to operate with\r\n/// other price feed solutions, like Chainlink, or Pyth. \r\n///\r\n/// @author Guillermo Díaz <guillermo@witnet.io>\r\n\r\ncontract WitPriceFeedsV3\r\n    is\r\n        Clonable,\r\n        Ownable2Step,\r\n        WitPriceFeeds\r\n{\r\n    using Witnet for Witnet.DataResult;\r\n    using Witnet for Witnet.RadonHash;\r\n    using Witnet for Witnet.Timestamp;\r\n\r\n    using WitPriceFeedsDataLib for ID4;\r\n    using WitPriceFeedsDataLib for Mappers;\r\n    using WitPriceFeedsDataLib for Oracles;\r\n    using WitPriceFeedsDataLib for UpdateConditions;\r\n    using WitPriceFeedsDataLib for WitPriceFeedsDataLib.PriceFeed;\r\n\r\n    address immutable public override witOracle;\r\n\r\n    function class() virtual override public pure returns (string memory) {\r\n        return type(WitPriceFeedsV3).name;\r\n    }\r\n\r\n    constructor(\r\n            address _witOracle,\r\n            address _operator\r\n        )\r\n        Ownable(_operator != address(0) ? _operator : msg.sender)\r\n    {\r\n        require(\r\n            _witOracle.code.length > 0,\r\n            \"inexistent wit/oracle\"\r\n        );\r\n        bytes4 _witOracleSpecs = IWitAppliance(address(_witOracle)).specs();\r\n        require(\r\n            _witOracleSpecs == type(IWitOracle).interfaceId \r\n                || _witOracleSpecs == type(IWitOracle).interfaceId ^ type(IWitOracleQueriable).interfaceId,\r\n            \"uncompliant wit/oracle\"\r\n        );\r\n        witOracle = _witOracle;\r\n        __storage().defaultUpdateConditions = UpdateConditions({\r\n            callbackGas: 1_000_000,\r\n            computeEma: false,\r\n            cooldownSecs: 15 minutes,\r\n            heartbeatSecs: 1 days,\r\n            maxDeviation1000: 0, // oo\r\n            minWitnesses: 3\r\n        });\r\n    }\r\n\r\n    function initializeClone(\r\n            address _curator, \r\n            UpdateConditions calldata _defaultUpdateConditions\r\n        )\r\n        external\r\n        onlyOnClones\r\n        initializer\r\n        returns (address)\r\n    {\r\n        _require(_curator != address(0), \"zero curator\");\r\n        _transferOwnership(_curator);\r\n        \r\n        _require(_validateUpdateConditions(_defaultUpdateConditions), \"invalid conditions\");\r\n        __storage().defaultUpdateConditions = _defaultUpdateConditions;\r\n\r\n        return address(this);\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- Clonable --------------------------------------------------------------------------------------------------\r\n\r\n    function initialized() virtual override public view returns (bool) {\r\n        return __storage().defaultUpdateConditions.minWitnesses > 0;\r\n    }\r\n    \r\n    \r\n    /// ===============================================================================================================\r\n    /// --- IERC2362 --------------------------------------------------------------------------------------------------\r\n\r\n    function valueFor(bytes32 _id)\r\n        override\r\n        external view\r\n        returns (int256 _value, uint256 _timestamp, uint256 _status)\r\n    {\r\n        ID4 _id4 = ID4.wrap(bytes4(_id));\r\n        WitPriceFeedsDataLib.PriceFeed storage __record = __seekPriceFeed(_id4);\r\n        UpdateConditions memory _updateConditions = __record.updateConditions.coalesce();\r\n        WitPriceFeedsDataLib.PriceData memory _lastUpdate = __record.fetchLastUpdate(_id4, _updateConditions.heartbeatSecs);\r\n        _value = int(uint(_lastUpdate.emaPrice > 0 ? _lastUpdate.emaPrice : _lastUpdate.price));\r\n        _timestamp = uint(Witnet.Timestamp.unwrap(_lastUpdate.timestamp));\r\n        _status = (\r\n            _timestamp == 0 \r\n                ? 404\r\n                : (\r\n                    block.timestamp > Witnet.Timestamp.unwrap(_lastUpdate.timestamp) + _updateConditions.heartbeatSecs\r\n                        ? 400 \r\n                        : 200\r\n                )\r\n        );\r\n    }\r\n\r\n    \r\n    /// ===============================================================================================================\r\n    /// --- IWitPyth --------------------------------------------------------------------------------------------------\r\n\r\n    /// @notice Returns the exponentially-weighted moving average price.\r\n    /// @dev Reverts if the EMA price is not available, or if the price feeds is settled with a heartbeat\r\n    /// and the price was not recently updated.\r\n    /// @param _id The Price Feed ID of which to fetch the EMA price.\r\n    function getEmaPrice(ID _id)\r\n        external view override \r\n        returns (PythPrice memory)\r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPrice(_intoID4(_id))\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the exponentially-weighted moving average price that is no older than `_age` seconds\r\n    /// of the current time.\r\n    /// @dev This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in\r\n    /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\r\n    /// recently.\r\n    function getEmaPriceNotOlderThan(ID _id, uint64 _age)\r\n        external view override\r\n        returns (PythPrice memory)\r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPriceNotOlderThan(_intoID4(_id), uint24(_age))\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\r\n    /// @dev This function returns the same price as `getEmaPrice` in the case where the price is available.\r\n    /// However, if the price is not recent this function returns the latest available price.\r\n    ///\r\n    /// The returned price can be from arbitrarily far in the past; this function makes no guarantees that\r\n    /// the returned price is recent or useful for any particular application.\r\n    ///\r\n    /// Users of this function should check the `timestamp` in the price to ensure that the returned price is\r\n    /// sufficiently recent for their application. If you are considering using this function, it may be\r\n    /// safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`.\r\n    function getEmaPriceUnsafe(ID _id)\r\n        external view override \r\n        returns (PythPrice memory) \r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPriceUnsafe(_intoID4(_id))\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the price of given price feed.\r\n    /// @dev Reverts if the price has not been updated within the last `heartbeatSecs`. \r\n    /// @param _id The Price Feed ID of which to fetch the price.\r\n    function getPrice(ID _id)\r\n        external view override\r\n        returns (PythPrice memory)\r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPrice(_intoID4(_id))\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the price that is no older than `_age` seconds of the current time.\r\n    /// @dev This function is a sanity-checked version of `getPriceUnsafe` which is useful in\r\n    /// applications that require a sufficiently-recent price. \r\n    /// Reverts if the price wasn't updated sufficiently\r\n    /// recently.\r\n    function getPriceNotOlderThan(ID _id, uint64 _age)\r\n        external view override \r\n        returns (PythPrice memory)\r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPriceNotOlderThan(_intoID4(_id), uint24(_age))\r\n        );\r\n    }\r\n\r\n    /// @notice Returns the price of a price feed without any sanity checks.\r\n    /// @dev This function returns the most recent price update in this contract without any recency checks.\r\n    /// This function is unsafe as the returned price update may be arbitrarily far in the past.\r\n    /// \r\n    /// Users of this function should check the `timestamp` in the price to ensure that the returned price is\r\n    /// sufficiently recent for their application. If you are considering using this function, it may be\r\n    /// safer / easier to use either `getPrice` or `getPriceNoOlderThan`.\r\n    function getPriceUnsafe(ID _id)\r\n        external view override\r\n        returns (PythPrice memory)\r\n    {\r\n        return _intoPythPrice(\r\n            WitPriceFeedsDataLib.getPriceUnsafe(_intoID4(_id))\r\n        );\r\n    }\r\n\r\n    /// @notice Legacy-compliant to get the required fee to update an array of price updates, which would be\r\n    /// always 0 if relying from the Wit/Oracle framework.\r\n    function getUpdateFee(bytes calldata) external override pure returns (uint256) {\r\n        return 0;\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitPriceFeeds --------------------------------------------------------------------------------------------\r\n\r\n    /// --- permissionless state-modifying methods --------------------------------------------------------------------\r\n\r\n    /// Creates a light-proxy clone to the `base()` contract address, to be owned by the specified `curator` address. \r\n    /// Curators of cloned contracts can optionally settle one single `IWitPriceFeedConsumer` consuming contract. \r\n    /// The consuming contract, if settled, will be immediately reported every time a new Witnet-certified price update\r\n    /// gets pushed into the cloned instance. Either way, price feeds data will be stored in the `WitPriceFeeds` storage. \r\n    /// @param _curator Address that will have rights to manage price feeds on the new light-proxy clone.\r\n    function clone(address _curator) \r\n        virtual override\r\n        external\r\n        returns (address)\r\n    {\r\n        return WitPriceFeedsV3(__clone()).initializeClone(\r\n            _curator,\r\n            __storage().defaultUpdateConditions\r\n        );\r\n    }\r\n\r\n    /// Creates a Chainlink Aggregator proxy to the specified symbol.\r\n    /// @dev Reverts if symbol is not supported.\r\n    function createChainlinkAggregator(string calldata symbol)\r\n        virtual override external\r\n        returns (address)\r\n    {\r\n        require(supportsCaption(symbol), PriceFeedNotFound());\r\n        bytes memory _initcode = type(WitPythChainlinkAggregator).creationCode;\r\n        bytes memory _params = abi.encodePacked(address(this), _intoID4(hash(symbol)));\r\n        address _aggregator = _determineCreate2Address(_initcode, _params);\r\n        if (_aggregator.code.length == 0) {\r\n            bytes memory _bytecode = _completeInitCode(_initcode, _params);\r\n            assembly {\r\n                _aggregator := create2(\r\n                    0,\r\n                    add(_bytecode, 0x20),\r\n                    mload(_bytecode),\r\n                    0\r\n                )\r\n            }\r\n        }\r\n        return _aggregator;\r\n    }\r\n\r\n\r\n    /// --- read-only methods -----------------------------------------------------------------------------------------\r\n\r\n    function base() virtual override (Clonable, IWitPriceFeeds) public view returns (address) {\r\n        return super.base();\r\n    }\r\n\r\n    /// Returns the consumer address where all price updates will be reported to.\r\n    /// @dev If zero, new price updates will not be reported to any other external address.\r\n    /// @dev The consumer contract must implement the `IWitPriceFeedsConsumer` interface, \r\n    /// @dev and accept this instance as source of truth.\r\n    /// @dev It can only be settled by a curator on cloned instances.\r\n    /// @dev It can only be settled by a curator, only on cloned instances.\r\n    function consumer() override external view returns (IWitPriceFeedsConsumer) {\r\n        return IWitPriceFeedsConsumer(__storage().consumer);\r\n    }\r\n\r\n    /// Returns a unique hash determined by the combination of data sources being used by \r\n    /// supported non-routed price feeds, and dependencies of all supported routed \r\n    /// price feeds. The footprint changes if any price feed is modified, added, removed \r\n    /// or if the dependency tree of any routed price feed is altered.\r\n    function footprint() external override view returns (bytes4 _footprint) {\r\n        return __storage().footprint;\r\n    }\r\n    \r\n    /// Determines unique ID for specified `symbol` string.\r\n    function hash(string memory _symbol) public pure returns (ID) {\r\n        return ID.wrap(WitPriceFeedsDataLib.hash(_symbol));\r\n    }\r\n    \r\n    /// @notice Returns last update price for the specified ID4 price feed.\r\n    /// Note: This function is sanity-checked version of `getPriceUnsafe` which is useful in applications and\r\n    /// smart contracts that require recentl updated price, and no hint of market deviation being currently excessive. \r\n    ///\r\n    /// @dev Reverts if:\r\n    /// - `StalePrice()`: the price feed has not been updated within the last `UpdateConditions.heartbeatSecs`,\r\n    /// - `DeviantPrice()`: a deviation greater than `UpdateConditions.maxDeviation1000` was detected upon last update attempt.\r\n    /// - `InvalidGovernanceTarget()`: no EMA is curretly settled to be computed for this price feed.\r\n    ///\r\n    /// @param _id4 Unique ID4 identifier of a price feed supported by this contract.\r\n    function getPrice(ID4 _id4) external view override returns (Price memory) {\r\n        return WitPriceFeedsDataLib.getPrice(_id4);\r\n    }\r\n\r\n    /// @notice Returns last known price if no older than `_age` seconds of the current time.\r\n    /// Note: This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications and\r\n    /// smart contracts that require last known non-deviant price, last updated within specified time range.\r\n    ///\r\n    /// @dev Reverts if:\r\n    /// - `StalePrice()`: the price feed has not been updated within the last `_age` seconds,\r\n    /// \r\n    /// @param _id4 Unique ID4 identifier of a price feed supported by this contract.\r\n    /// @param _age Maximum age of acceptable price value.\r\n    function getPriceNotOlderThan(ID4 _id4, uint24 _age) external view override returns (Price memory) {\r\n        return WitPriceFeedsDataLib.getPriceNotOlderThan(_id4, _age);\r\n    }\r\n\r\n    /// @notice Returns last updated price without any sanity checks.\r\n    /// Note: This function is unsafe as the returned price update may be arbitrarily far in the past.\r\n    /// Users of this function should check the `timestamp` of each price feed to ensure that the returned values \r\n    /// are sufficiently recent for their application. If you need safe access to fresh data, please consider\r\n    /// using calling to either `getPrice` or `getPriceNoOlderThan` variants.\r\n    /// \r\n    /// @param _id4 Unique ID4 identifier of a price feed supported by this contract.\r\n    function getPriceUnsafe(ID4 _id4) external view override returns (Price memory) {\r\n        return WitPriceFeedsDataLib.getPriceUnsafe(_id4);\r\n    }\r\n    \r\n    function lookupPriceFeed(ID4 _id4)\r\n        override \r\n        public view \r\n        returns (Info memory)\r\n    {\r\n        WitPriceFeedsDataLib.PriceFeed storage __record = __seekPriceFeed(_id4);\r\n        Mappers _mapper = __record.mapper;\r\n        string[] memory _mapperDeps;\r\n        if (_mapper != Mappers.None) {\r\n            ID4[] memory _deps = _id4.deps();\r\n            _mapperDeps = new string[](_deps.length);\r\n            for (uint _ix = 0; _ix < _deps.length; ++ _ix) {\r\n                _mapperDeps[_ix] = __storage().records[_deps[_ix]].symbol;\r\n            }\r\n        }\r\n        Oracles _oracle = __record.oracle;\r\n        bytes32 _oracleSources = __record.oracleSources;\r\n        address _oracleAddress = __record.oracleAddress;\r\n\r\n        return Info({\r\n            id: _intoID(_id4),\r\n            exponent: __record.exponent,\r\n            symbol: __record.symbol,\r\n            mapper: Mapper({\r\n                class: _mapper,\r\n                deps: _mapperDeps\r\n            }),\r\n            oracle: Oracle({\r\n                class: _oracle,\r\n                target: _oracleAddress,\r\n                sources: _oracleSources\r\n            }),\r\n            updateConditions: __record.updateConditions.coalesce(),\r\n            lastUpdate: WitPriceFeedsDataLib.getPriceUnsafe(_id4)\r\n        });\r\n    }\r\n\r\n    function lookupPriceFeedCaption(ID4 _id4) external override view returns (string memory _symbol) {\r\n        return __seekPriceFeed(_id4).symbol;\r\n    }\r\n\r\n    function lookupPriceFeedExponent(ID4 _id4) override public view returns (int8) {\r\n        return __seekPriceFeed(_id4).exponent;\r\n    }\r\n\r\n    function lookupPriceFeedID(ID4 _id4) override public view returns (bytes32) {\r\n        return ID.unwrap(_intoID(_id4));\r\n    }\r\n    \r\n    function lookupPriceFeeds() external override view returns (Info[] memory _infos) {\r\n        ID[] storage __ids = __storage().ids;\r\n        _infos = new Info[](__ids.length);\r\n        for (uint _ix; _ix < _infos.length; ++ _ix) {\r\n            _infos[_ix] = lookupPriceFeed(_intoID4(__ids[_ix]));\r\n        }\r\n    }\r\n\r\n    function supportsCaption(string calldata _caption) public override view returns (bool) {\r\n        WitPriceFeedsDataLib.PriceFeed storage __record = __seekPriceFeed(_intoID4(hash(_caption)));\r\n        return __record.settled();\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitPriceFeedsAdmin ---------------------------------------------------------------------------------------\r\n\r\n    function acceptOwnership()\r\n        virtual override (IWitPriceFeedsAdmin, Ownable2Step)\r\n        public\r\n    {\r\n        Ownable2Step.acceptOwnership();\r\n    }\r\n\r\n    function defaultUpdateConditions()\r\n        external view override\r\n        returns (UpdateConditions memory)\r\n    {\r\n        return __storage().defaultUpdateConditions;\r\n    }\r\n\r\n    function owner()\r\n        virtual override (IWitPriceFeedsAdmin, Ownable)\r\n        public view \r\n        returns (address)\r\n    {\r\n        return Ownable.owner();\r\n    }\r\n\r\n    function pendingOwner() \r\n        virtual override (IWitPriceFeedsAdmin, Ownable2Step)\r\n        public view\r\n        returns (address)\r\n    {\r\n        return Ownable2Step.pendingOwner();\r\n    }\r\n    \r\n    function transferOwnership(address _newOwner)\r\n        virtual override (IWitPriceFeedsAdmin, Ownable2Step)\r\n        public \r\n        onlyOwner\r\n    {\r\n        Ownable.transferOwnership(_newOwner);\r\n    }\r\n\r\n    function removePriceFeed(string calldata _symbol, bool _recursively) \r\n        external override\r\n        onlyOwner\r\n        returns (bytes4 _footprint)\r\n    {\r\n        ID4 _id4 = _intoID4(hash(_symbol));\r\n        WitPriceFeedsDataLib.removePriceFeed(_id4, _recursively);\r\n        emit PriceFeedRemoved(\r\n            msg.sender, \r\n            _id4, \r\n            _symbol\r\n        );\r\n        return WitPriceFeedsDataLib.settlePriceFeedFootprint();\r\n    }\r\n\r\n    function settleConsumer(address _consumer)\r\n        external override\r\n        onlyOnClones\r\n        onlyOwner\r\n    {\r\n        _require(\r\n            _consumer != address(this)\r\n                && _consumer != base()\r\n                && _consumer.code.length > 0 // must be a contract\r\n                && address(IWitPriceFeedsConsumer(_consumer).witPriceFeeds()) == address(this),\r\n            \"invalid consumer\"\r\n        );\r\n        __storage().consumer = _consumer;\r\n    }\r\n\r\n    function settleDefaultUpdateConditions(UpdateConditions calldata _conditions)\r\n        external override\r\n        onlyOwner\r\n    {\r\n        _require(_validateUpdateConditions(_conditions), \"invalid conditions\");\r\n        __storage().defaultUpdateConditions = _conditions;\r\n    }\r\n\r\n    function settlePriceFeedMapper(\r\n            string calldata _symbol, \r\n            int8 _exponent,\r\n            Mappers _mapper,\r\n            string[] calldata _deps\r\n        ) \r\n        external override\r\n        onlyOwner\r\n        returns (bytes4)\r\n    {\r\n        try WitPriceFeedsDataLib\r\n            .settlePriceFeedMapper(\r\n                _symbol, \r\n                _exponent, \r\n                _mapper,\r\n                _deps\r\n            )\r\n        returns (bytes4 _footprint) { \r\n            emit PriceFeedMapper(\r\n                msg.sender,\r\n                _intoID4(hash(_symbol)),\r\n                _symbol,\r\n                _exponent,\r\n                _mapper,\r\n                _deps\r\n            );\r\n            return _footprint; \r\n        \r\n        } catch Error(string memory _reason) { \r\n            _revert(_reason); \r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandled(); \r\n        }\r\n    }\r\n\r\n    function settlePriceFeedOracle(\r\n            string calldata _symbol, \r\n            int8 _exponent,\r\n            Oracles _oracle,\r\n            address _oracleAddress,\r\n            bytes32 _oracleSources\r\n        ) \r\n        external override\r\n        onlyOwner\r\n        returns (bytes4)\r\n    {\r\n        return __settlePriceFeedOracle(_symbol, _exponent, _oracle, _oracleAddress, _oracleSources);\r\n    }\r\n\r\n    function settlePriceFeedRadonBytecode(\r\n            string calldata _symbol, \r\n            int8 _exponent,\r\n            bytes calldata _radonBytecode\r\n        )\r\n        external override \r\n        onlyOwner\r\n        returns (bytes4)\r\n    {\r\n        try WitPriceFeedsDataLib\r\n            .settlePriceFeedRadonBytecode(\r\n                _symbol,\r\n                _radonBytecode,\r\n                _exponent,\r\n                IWitOracle(witOracle).registry()\r\n            )\r\n        returns (bytes4 _footprint, Witnet.RadonHash _radonHash) {\r\n            emit PriceFeedOracle(\r\n                msg.sender,\r\n                _intoID4(hash(_symbol)),\r\n                _symbol,\r\n                _exponent,\r\n                Oracles.Witnet,\r\n                address(this),\r\n                Witnet.RadonHash.unwrap(_radonHash)\r\n            );\r\n            return _footprint;\r\n        \r\n        } catch Error(string memory _reason) { \r\n            _revert(_reason); \r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandled(); \r\n        }\r\n    }\r\n\r\n    function settlePriceFeedRadonHash(\r\n            string calldata _symbol, \r\n            int8 _exponent,\r\n            Witnet.RadonHash _radonHash\r\n        )\r\n        external override \r\n        onlyOwner\r\n        returns (bytes4)\r\n    {\r\n        try WitPriceFeedsDataLib\r\n            .settlePriceFeedRadonHash(\r\n                _symbol,\r\n                _radonHash,\r\n                _exponent,\r\n                IWitOracle(witOracle).registry()\r\n            )\r\n        returns (bytes4 _footprint) {\r\n            emit PriceFeedOracle(\r\n                msg.sender,\r\n                _intoID4(hash(_symbol)),\r\n                _symbol,\r\n                _exponent,\r\n                Oracles.Witnet,\r\n                address(this),\r\n                Witnet.RadonHash.unwrap(_radonHash)\r\n            );\r\n            return _footprint;\r\n        }\r\n        catch Error(string memory _reason) { \r\n            _revert(_reason); \r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandled(); \r\n        }\r\n    }\r\n\r\n    function settlePriceFeedUpdateConditions(\r\n            string calldata _symbol, \r\n            UpdateConditions calldata _conditions\r\n        )\r\n        external override\r\n        onlyOwner\r\n    {\r\n        _require(_validateUpdateConditions(_conditions), \"invalid conditions\");\r\n        __settlePriceFeedUpdateConditions(_symbol, _conditions);\r\n    }\r\n\r\n\r\n    /// ===============================================================================================================\r\n    /// --- IWitOracleConsumer ----------------------------------------------------------------------------------------\r\n\r\n    function pushDataReport(\r\n            Witnet.DataPushReport calldata report, \r\n            bytes calldata proof\r\n        )\r\n        virtual override\r\n        public\r\n    {\r\n        ID4 _id4 = __storage().reverseIds[report.queryRadHash];\r\n        require(\r\n            !_id4.isZero(), \r\n            InvalidUpdateDataSource()\r\n        );\r\n        WitPriceFeedsDataLib.PriceFeed storage __record = __seekPriceFeed(_id4);\r\n        UpdateConditions memory _updateConditions = __record.updateConditions.coalesce();\r\n        require(\r\n            report.queryParams.witCommitteeSize >= _updateConditions.minWitnesses,\r\n            InvalidGovernanceTarget()\r\n        );\r\n        Witnet.DataResult memory _dataResult = IWitOracle(witOracle).pushDataReport(\r\n            report,\r\n            proof\r\n        );\r\n        require(\r\n            _dataResult.status == Witnet.ResultStatus.NoErrors\r\n                && _dataResult.dataType == Witnet.RadonDataTypes.Integer,\r\n            InvalidUpdateData()\r\n        );\r\n        require(\r\n            _dataResult.timestamp.gt(__record.lastUpdate.timestamp),\r\n            NoFreshUpdate()\r\n        );\r\n        require(\r\n            Witnet.Timestamp.unwrap(_dataResult.timestamp)\r\n                >= Witnet.Timestamp.unwrap(__record.lastUpdate.timestamp) + _updateConditions.cooldownSecs,\r\n            HotPrice()\r\n        );\r\n        \r\n        int8 _exponent = __record.lastUpdate.exponent;\r\n        uint64 _deltaSecs = uint24(\r\n            Witnet.Timestamp.unwrap(__record.lastUpdate.timestamp)\r\n                - Witnet.Timestamp.unwrap(_dataResult.timestamp)\r\n        );\r\n        uint64 _lastPrice = __record.lastUpdate.price;\r\n        uint64 _nextPrice = _dataResult.fetchUint();\r\n        int56 _deltaPrice = int56(int64(_nextPrice) - int64(_lastPrice));\r\n        uint64 _deviation1000 = (\r\n            _deltaPrice >= 0\r\n                ? uint56(_deltaPrice * 1000) / _lastPrice\r\n                : uint56(-_deltaPrice * 1000) / _lastPrice\r\n        );\r\n        \r\n        require(\r\n            _updateConditions.maxDeviation1000 == 0 || _deviation1000 <= _updateConditions.maxDeviation1000,\r\n            DeviantPrice()\r\n        );\r\n\r\n        __record.lastUpdate.deltaPrice = _deltaPrice;\r\n        __record.lastUpdate.price = _nextPrice;\r\n        __record.lastUpdate.timestamp = _dataResult.timestamp;\r\n        __record.lastUpdate.trail = _dataResult.drTxHash;\r\n\r\n        if (_updateConditions.computeEma) {\r\n            // TODO\r\n            // ...\r\n            /// __record.lastUpdate.emaPrice = x;\r\n        }\r\n        \r\n        if (__storage().consumer == address(0)) {\r\n            emit PriceFeedUpdate(\r\n                _id4,\r\n                _dataResult.timestamp,\r\n                _dataResult.drTxHash,\r\n                _nextPrice,\r\n                _deltaPrice,\r\n                _exponent\r\n            );\r\n        } else {\r\n            IWitPriceFeedsConsumer(__storage().consumer).reportUpdate(\r\n                _id4,\r\n                _dataResult.timestamp,\r\n                _dataResult.drTxHash,\r\n                _nextPrice,\r\n                _deltaPrice,\r\n                _deltaSecs,\r\n                _exponent\r\n            );\r\n        }\r\n    }\r\n\r\n    \r\n    // ================================================================================================================\r\n    // --- Internal methods -------------------------------------------------------------------------------------------\r\n\r\n    function _completeInitCode(bytes memory initcode, bytes memory params)\r\n        private pure\r\n        returns (bytes memory)\r\n    {\r\n        return abi.encodePacked(\r\n            initcode,\r\n            params\r\n        );\r\n    }\r\n\r\n    function _determineCreate2Address(bytes memory initcode, bytes memory params)\r\n        private view\r\n        returns (address)\r\n    {\r\n        return address(\r\n            uint160(uint(keccak256(\r\n                abi.encodePacked(\r\n                    bytes1(0xff),\r\n                    address(this),\r\n                    bytes32(0),\r\n                    keccak256(_completeInitCode(initcode, params))\r\n                )\r\n            )))\r\n        );\r\n    }\r\n\r\n    function _intoID(ID4 id4) internal view returns (ID) {\r\n        return __storage().ids[__storage().records[id4].index];\r\n    }\r\n\r\n    function _intoID4(ID id) internal pure returns (ID4) {\r\n        return ID4.wrap(bytes4(ID.unwrap(id)));\r\n    }\r\n\r\n    function _intoPythPrice(Price memory _witPrice) internal pure returns (PythPrice memory) {\r\n        return PythPrice({\r\n            price: int64(_witPrice.price),\r\n            conf: 0,\r\n            expo: int32(_witPrice.exponent),\r\n            publishTime: uint(Witnet.Timestamp.unwrap(_witPrice.timestamp))\r\n        });\r\n    }\r\n\r\n    function _revertUnhandled() internal view {\r\n        _revert(\"unhandled revert\");\r\n    }\r\n\r\n    function _validateUpdateConditions(UpdateConditions memory _conditions)\r\n        internal pure\r\n        returns (bool)\r\n    {\r\n        return (\r\n            _conditions.callbackGas > 0\r\n                && _conditions.heartbeatSecs > 0\r\n                && _conditions.minWitnesses > 0\r\n        );\r\n    }\r\n\r\n    function __seekPriceFeed(ID4 _id4) internal view returns (WitPriceFeedsDataLib.PriceFeed storage) {\r\n        return WitPriceFeedsDataLib.seekPriceFeed(_id4);\r\n    }\r\n\r\n    function __settlePriceFeedOracle(\r\n            string memory _symbol, \r\n            int8 _exponent,\r\n            Oracles _oracle,\r\n            address _oracleAddress,\r\n            bytes32 _oracleSources\r\n        )\r\n        virtual internal \r\n        returns (bytes4)\r\n    {\r\n        try WitPriceFeedsDataLib\r\n            .settlePriceFeedOracle(\r\n                _symbol, \r\n                _exponent, \r\n                _oracle,\r\n                _oracleAddress,\r\n                _oracleSources\r\n            )\r\n        returns (bytes4 _footprint) { \r\n            emit PriceFeedOracle(\r\n                msg.sender,\r\n                _intoID4(hash(_symbol)),\r\n                _symbol,\r\n                _exponent,\r\n                _oracle,\r\n                _oracleAddress,\r\n                _oracleSources\r\n            );\r\n            return _footprint; \r\n        \r\n        } catch Error(string memory _reason) { \r\n            _revert(_reason); \r\n        \r\n        } catch (bytes memory) {\r\n            _revertUnhandled(); \r\n        }\r\n    }\r\n\r\n    function __settlePriceFeedUpdateConditions(\r\n            string memory _symbol,\r\n            UpdateConditions memory _conditions\r\n        )\r\n        virtual internal \r\n    {\r\n        ID4 _id4 = _intoID4(hash(_symbol));\r\n        WitPriceFeedsDataLib.PriceFeed storage __pf = __seekPriceFeed(_id4);\r\n        __pf.updateConditions = _conditions;\r\n        if (!_conditions.computeEma) {\r\n            __pf.lastUpdate.emaPrice = 0;\r\n        }\r\n        emit PriceFeedUpdateConditions(\r\n            _msgSender(),\r\n            _id4,\r\n            _symbol,\r\n            _conditions\r\n        );\r\n    }\r\n\r\n    function __storage() internal pure returns (WitPriceFeedsDataLib.Storage storage) {\r\n        return WitPriceFeedsDataLib.data();\r\n    }\r\n\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\guidiaz\\witnet-solidity-bridge\\contracts\\apps\\WitPriceFeedsV3.sol",
  "ast": {
    "absolutePath": "project:/contracts/apps/WitPriceFeedsV3.sol",
    "exportedSymbols": {
      "Clonable": [
        45518
      ],
      "IWitAppliance": [
        26514
      ],
      "IWitOracle": [
        26581
      ],
      "IWitOracleAppliance": [
        26593
      ],
      "IWitOracleQueriable": [
        26795
      ],
      "IWitOracleRadonRegistry": [
        27394
      ],
      "IWitPriceFeeds": [
        27848
      ],
      "IWitPriceFeedsAdmin": [
        27955
      ],
      "IWitPriceFeedsConsumer": [
        27992
      ],
      "Ownable": [
        415
      ],
      "Ownable2Step": [
        45709
      ],
      "WitPriceFeeds": [
        780
      ],
      "WitPriceFeedsDataLib": [
        25111
      ],
      "WitPriceFeedsV3": [
        6343
      ],
      "WitPythChainlinkAggregator": [
        44805
      ],
      "Witnet": [
        40741
      ]
    },
    "id": 6344,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4363,
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:31:19"
      },
      {
        "absolutePath": "project:/contracts/WitOracle.sol",
        "file": "../WitOracle.sol",
        "id": 4370,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 679,
        "src": "68:167:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4364,
              "name": "IWitAppliance",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26514,
              "src": "82:13:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4365,
              "name": "IWitOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26581,
              "src": "102:10:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4366,
              "name": "IWitOracleAppliance",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26593,
              "src": "119:19:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4367,
              "name": "IWitOracleQueriable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26795,
              "src": "145:19:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4368,
              "name": "IWitOracleRadonRegistry",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27394,
              "src": "171:23:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4369,
              "name": "Witnet",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 40741,
              "src": "201:6:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitPriceFeeds.sol",
        "file": "../WitPriceFeeds.sol",
        "id": 4375,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 781,
        "src": "239:135:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4371,
              "name": "IWitPriceFeeds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27848,
              "src": "253:14:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4372,
              "name": "IWitPriceFeedsAdmin",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27955,
              "src": "274:19:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4373,
              "name": "IWitPriceFeedsConsumer",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27992,
              "src": "300:22:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4374,
              "name": "WitPriceFeeds",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 780,
              "src": "329:13:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/data/WitPriceFeedsDataLib.sol",
        "file": "../data/WitPriceFeedsDataLib.sol",
        "id": 4377,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 25112,
        "src": "378:70:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4376,
              "name": "WitPriceFeedsDataLib",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 25111,
              "src": "386:20:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/mockups/WitPythChainlinkAggregator.sol",
        "file": "../mockups/WitPythChainlinkAggregator.sol",
        "id": 4379,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 44806,
        "src": "450:85:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4378,
              "name": "WitPythChainlinkAggregator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 44805,
              "src": "458:26:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Clonable.sol",
        "file": "../patterns/Clonable.sol",
        "id": 4381,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 45519,
        "src": "539:50:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4380,
              "name": "Clonable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 45518,
              "src": "547:8:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/patterns/Ownable2Step.sol",
        "file": "../patterns/Ownable2Step.sol",
        "id": 4384,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6344,
        "sourceUnit": 45710,
        "src": "591:67:19",
        "symbolAliases": [
          {
            "foreign": {
              "id": 4382,
              "name": "Ownable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 415,
              "src": "599:7:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 4383,
              "name": "Ownable2Step",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 45709,
              "src": "608:12:19",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 4386,
              "name": "Clonable",
              "nameLocations": [
                "2093:8:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45518,
              "src": "2093:8:19"
            },
            "id": 4387,
            "nodeType": "InheritanceSpecifier",
            "src": "2093:8:19"
          },
          {
            "baseName": {
              "id": 4388,
              "name": "Ownable2Step",
              "nameLocations": [
                "2112:12:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 45709,
              "src": "2112:12:19"
            },
            "id": 4389,
            "nodeType": "InheritanceSpecifier",
            "src": "2112:12:19"
          },
          {
            "baseName": {
              "id": 4390,
              "name": "WitPriceFeeds",
              "nameLocations": [
                "2135:13:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 780,
              "src": "2135:13:19"
            },
            "id": 4391,
            "nodeType": "InheritanceSpecifier",
            "src": "2135:13:19"
          }
        ],
        "canonicalName": "WitPriceFeedsV3",
        "contractDependencies": [
          44805
        ],
        "contractKind": "contract",
        "documentation": {
          "id": 4385,
          "nodeType": "StructuredDocumentation",
          "src": "662:1387:19",
          "text": "@title WitPriceFeedsV3: On-demand Price Feeds registry for EVM-compatible L1/L2 chains, \n natively powered by the Wit/Oracle blockchain, but yet capable of aggregating price \n updates from other on-chain price-feed oracles too, if required.\n \n Price feeds purely relying on the Wit/Oracle present some advantanges, though:\n - Anyone can permissionless pull and report price updates on-chain.\n - Updating the price requires paying no extra \"update fees\".\n - Prices can be extracted from independent and highly reputed exchanges and data providers.\n - Actual data sources for each price feed can be introspected on-chain.\n - Data source traceability in the Wit/Oracle blockchain is possible for every single price update.\n Instances of this contract may also provide support for \"routed price feeds\" (computed as the \n product or mean average of up to other 8 different price feeds), as well as \"cascade price feeds\" \n (where multiple oracles could be used as backup when preferred ones don't manage to provide \n fresh enough updates for whatever reason).\n Also, this contract allows simple plug-and-play integration from \n smart contracts, dapps and DeFi projects currently adapted to operate with\n other price feed solutions, like Chainlink, or Pyth. \n @author Guillermo Díaz <guillermo@witnet.io>"
        },
        "fullyImplemented": true,
        "id": 6343,
        "linearizedBaseContracts": [
          6343,
          780,
          27848,
          29643,
          29711,
          29697,
          28156,
          28075,
          27955,
          26606,
          26514,
          644,
          45709,
          415,
          523,
          45518,
          267
        ],
        "name": "WitPriceFeedsV3",
        "nameLocation": "2060:15:19",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 4395,
            "libraryName": {
              "id": 4392,
              "name": "Witnet",
              "nameLocations": [
                "2163:6:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "2163:6:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2157:35:19",
            "typeName": {
              "id": 4394,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4393,
                "name": "Witnet.DataResult",
                "nameLocations": [
                  "2174:6:19",
                  "2181:10:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37293,
                "src": "2174:17:19"
              },
              "referencedDeclaration": 37293,
              "src": "2174:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                "typeString": "struct Witnet.DataResult"
              }
            }
          },
          {
            "global": false,
            "id": 4399,
            "libraryName": {
              "id": 4396,
              "name": "Witnet",
              "nameLocations": [
                "2204:6:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "2204:6:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2198:34:19",
            "typeName": {
              "id": 4398,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4397,
                "name": "Witnet.RadonHash",
                "nameLocations": [
                  "2215:6:19",
                  "2222:9:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37153,
                "src": "2215:16:19"
              },
              "referencedDeclaration": 37153,
              "src": "2215:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                "typeString": "Witnet.RadonHash"
              }
            }
          },
          {
            "global": false,
            "id": 4403,
            "libraryName": {
              "id": 4400,
              "name": "Witnet",
              "nameLocations": [
                "2244:6:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 40741,
              "src": "2244:6:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2238:34:19",
            "typeName": {
              "id": 4402,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4401,
                "name": "Witnet.Timestamp",
                "nameLocations": [
                  "2255:6:19",
                  "2262:9:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 37157,
                "src": "2255:16:19"
              },
              "referencedDeclaration": 37157,
              "src": "2255:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                "typeString": "Witnet.Timestamp"
              }
            }
          },
          {
            "global": false,
            "id": 4407,
            "libraryName": {
              "id": 4404,
              "name": "WitPriceFeedsDataLib",
              "nameLocations": [
                "2286:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25111,
              "src": "2286:20:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2280:35:19",
            "typeName": {
              "id": 4406,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4405,
                "name": "ID4",
                "nameLocations": [
                  "2311:3:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 28155,
                "src": "2311:3:19"
              },
              "referencedDeclaration": 28155,
              "src": "2311:3:19",
              "typeDescriptions": {
                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                "typeString": "IWitPriceFeedsTypes.ID4"
              }
            }
          },
          {
            "global": false,
            "id": 4411,
            "libraryName": {
              "id": 4408,
              "name": "WitPriceFeedsDataLib",
              "nameLocations": [
                "2327:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25111,
              "src": "2327:20:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2321:39:19",
            "typeName": {
              "id": 4410,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4409,
                "name": "Mappers",
                "nameLocations": [
                  "2352:7:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 28087,
                "src": "2352:7:19"
              },
              "referencedDeclaration": 28087,
              "src": "2352:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Mappers_$28087",
                "typeString": "enum IWitPriceFeedsTypes.Mappers"
              }
            }
          },
          {
            "global": false,
            "id": 4415,
            "libraryName": {
              "id": 4412,
              "name": "WitPriceFeedsDataLib",
              "nameLocations": [
                "2372:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25111,
              "src": "2372:20:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2366:39:19",
            "typeName": {
              "id": 4414,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4413,
                "name": "Oracles",
                "nameLocations": [
                  "2397:7:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 28092,
                "src": "2397:7:19"
              },
              "referencedDeclaration": 28092,
              "src": "2397:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Oracles_$28092",
                "typeString": "enum IWitPriceFeedsTypes.Oracles"
              }
            }
          },
          {
            "global": false,
            "id": 4419,
            "libraryName": {
              "id": 4416,
              "name": "WitPriceFeedsDataLib",
              "nameLocations": [
                "2417:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25111,
              "src": "2417:20:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2411:48:19",
            "typeName": {
              "id": 4418,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4417,
                "name": "UpdateConditions",
                "nameLocations": [
                  "2442:16:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 28153,
                "src": "2442:16:19"
              },
              "referencedDeclaration": 28153,
              "src": "2442:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
              }
            }
          },
          {
            "global": false,
            "id": 4423,
            "libraryName": {
              "id": 4420,
              "name": "WitPriceFeedsDataLib",
              "nameLocations": [
                "2471:20:19"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 25111,
              "src": "2471:20:19"
            },
            "nodeType": "UsingForDirective",
            "src": "2465:62:19",
            "typeName": {
              "id": 4422,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4421,
                "name": "WitPriceFeedsDataLib.PriceFeed",
                "nameLocations": [
                  "2496:20:19",
                  "2517:9:19"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 22395,
                "src": "2496:30:19"
              },
              "referencedDeclaration": 22395,
              "src": "2496:30:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
              }
            }
          },
          {
            "baseFunctions": [
              27847
            ],
            "constant": false,
            "functionSelector": "1014d375",
            "id": 4426,
            "mutability": "immutable",
            "name": "witOracle",
            "nameLocation": "2569:9:19",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 4425,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2560:8:19"
            },
            "scope": 6343,
            "src": "2535:43:19",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4424,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "2535:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "public"
          },
          {
            "baseFunctions": [
              26472
            ],
            "body": {
              "id": 4437,
              "nodeType": "Block",
              "src": "2657:52:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 4433,
                          "name": "WitPriceFeedsV3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6343,
                          "src": "2680:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsV3_$6343_$",
                            "typeString": "type(contract WitPriceFeedsV3)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsV3_$6343_$",
                            "typeString": "type(contract WitPriceFeedsV3)"
                          }
                        ],
                        "id": 4432,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "2675:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 4434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2675:21:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitPriceFeedsV3_$6343",
                        "typeString": "type(contract WitPriceFeedsV3)"
                      }
                    },
                    "id": 4435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "2697:4:19",
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "src": "2675:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 4431,
                  "id": 4436,
                  "nodeType": "Return",
                  "src": "2668:33:19"
                }
              ]
            },
            "functionSelector": "bff852fa",
            "id": 4438,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "class",
            "nameLocation": "2596:5:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4428,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2612:8:19"
            },
            "parameters": {
              "id": 4427,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2601:2:19"
            },
            "returnParameters": {
              "id": 4431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4430,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4438,
                  "src": "2642:13:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4429,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2642:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2641:15:19"
            },
            "scope": 6343,
            "src": "2587:122:19",
            "stateMutability": "pure",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4516,
              "nodeType": "Block",
              "src": "2877:758:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4462,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 4458,
                              "name": "_witOracle",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4440,
                              "src": "2910:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 4459,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2921:4:19",
                            "memberName": "code",
                            "nodeType": "MemberAccess",
                            "src": "2910:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 4460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2926:6:19",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "2910:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 4461,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2935:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2910:26:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e6578697374656e74207769742f6f7261636c65",
                        "id": 4463,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2951:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_607e341bafd0779b8dd4ce1c0914683083ea6c77d6fb352adad667fac5e04d98",
                          "typeString": "literal_string \"inexistent wit/oracle\""
                        },
                        "value": "inexistent wit/oracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_607e341bafd0779b8dd4ce1c0914683083ea6c77d6fb352adad667fac5e04d98",
                          "typeString": "literal_string \"inexistent wit/oracle\""
                        }
                      ],
                      "id": 4457,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2888:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2888:97:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4465,
                  "nodeType": "ExpressionStatement",
                  "src": "2888:97:19"
                },
                {
                  "assignments": [
                    4467
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4467,
                      "mutability": "mutable",
                      "name": "_witOracleSpecs",
                      "nameLocation": "3003:15:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4516,
                      "src": "2996:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "typeName": {
                        "id": 4466,
                        "name": "bytes4",
                        "nodeType": "ElementaryTypeName",
                        "src": "2996:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4476,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4471,
                                "name": "_witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4440,
                                "src": "3043:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 4470,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3035:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 4469,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3035:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 4472,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3035:19:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4468,
                          "name": "IWitAppliance",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26514,
                          "src": "3021:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitAppliance_$26514_$",
                            "typeString": "type(contract IWitAppliance)"
                          }
                        },
                        "id": 4473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3021:34:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitAppliance_$26514",
                          "typeString": "contract IWitAppliance"
                        }
                      },
                      "id": 4474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3056:5:19",
                      "memberName": "specs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 26478,
                      "src": "3021:40:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bytes4_$",
                        "typeString": "function () view external returns (bytes4)"
                      }
                    },
                    "id": 4475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3021:42:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2996:67:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "id": 4483,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 4478,
                            "name": "_witOracleSpecs",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4467,
                            "src": "3096:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 4480,
                                  "name": "IWitOracle",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 26581,
                                  "src": "3120:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                    "typeString": "type(contract IWitOracle)"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                    "typeString": "type(contract IWitOracle)"
                                  }
                                ],
                                "id": 4479,
                                "name": "type",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967269,
                                "src": "3115:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                  "typeString": "function () pure"
                                }
                              },
                              "id": 4481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3115:16:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracle_$26581",
                                "typeString": "type(contract IWitOracle)"
                              }
                            },
                            "id": 4482,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "3132:11:19",
                            "memberName": "interfaceId",
                            "nodeType": "MemberAccess",
                            "src": "3115:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "src": "3096:47:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          },
                          "id": 4494,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 4484,
                            "name": "_witOracleSpecs",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4467,
                            "src": "3165:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "id": 4493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 4486,
                                    "name": "IWitOracle",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26581,
                                    "src": "3189:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                      "typeString": "type(contract IWitOracle)"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                      "typeString": "type(contract IWitOracle)"
                                    }
                                  ],
                                  "id": 4485,
                                  "name": "type",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967269,
                                  "src": "3184:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                    "typeString": "function () pure"
                                  }
                                },
                                "id": 4487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3184:16:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracle_$26581",
                                  "typeString": "type(contract IWitOracle)"
                                }
                              },
                              "id": 4488,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "3201:11:19",
                              "memberName": "interfaceId",
                              "nodeType": "MemberAccess",
                              "src": "3184:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "^",
                            "rightExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 4490,
                                    "name": "IWitOracleQueriable",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 26795,
                                    "src": "3220:19:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                      "typeString": "type(contract IWitOracleQueriable)"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_type$_t_contract$_IWitOracleQueriable_$26795_$",
                                      "typeString": "type(contract IWitOracleQueriable)"
                                    }
                                  ],
                                  "id": 4489,
                                  "name": "type",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967269,
                                  "src": "3215:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                    "typeString": "function () pure"
                                  }
                                },
                                "id": 4491,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3215:25:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_meta_type_t_contract$_IWitOracleQueriable_$26795",
                                  "typeString": "type(contract IWitOracleQueriable)"
                                }
                              },
                              "id": 4492,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "3241:11:19",
                              "memberName": "interfaceId",
                              "nodeType": "MemberAccess",
                              "src": "3215:37:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "src": "3184:68:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          },
                          "src": "3165:87:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3096:156:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "756e636f6d706c69616e74207769742f6f7261636c65",
                        "id": 4496,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3267:24:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cbcd48d575dfbbe3e40a18ff4aaf929b6cf25b8fe75b3b262dfeb3239030fde3",
                          "typeString": "literal_string \"uncompliant wit/oracle\""
                        },
                        "value": "uncompliant wit/oracle"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cbcd48d575dfbbe3e40a18ff4aaf929b6cf25b8fe75b3b262dfeb3239030fde3",
                          "typeString": "literal_string \"uncompliant wit/oracle\""
                        }
                      ],
                      "id": 4477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3074:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4497,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3074:228:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4498,
                  "nodeType": "ExpressionStatement",
                  "src": "3074:228:19"
                },
                {
                  "expression": {
                    "id": 4501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4499,
                      "name": "witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4426,
                      "src": "3313:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 4500,
                      "name": "_witOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4440,
                      "src": "3325:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3313:22:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4502,
                  "nodeType": "ExpressionStatement",
                  "src": "3313:22:19"
                },
                {
                  "expression": {
                    "id": 4514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4503,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "3346:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 4504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3346:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 4505,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "3358:23:19",
                      "memberName": "defaultUpdateConditions",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22331,
                      "src": "3346:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "hexValue": "315f3030305f303030",
                          "id": 4507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3429:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1000000_by_1",
                            "typeString": "int_const 1000000"
                          },
                          "value": "1_000_000"
                        },
                        {
                          "hexValue": "66616c7365",
                          "id": 4508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3465:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        {
                          "hexValue": "3135",
                          "id": 4509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3499:10:19",
                          "subdenomination": "minutes",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_900_by_1",
                            "typeString": "int_const 900"
                          },
                          "value": "15"
                        },
                        {
                          "hexValue": "31",
                          "id": 4510,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3539:6:19",
                          "subdenomination": "days",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_86400_by_1",
                            "typeString": "int_const 86400"
                          },
                          "value": "1"
                        },
                        {
                          "hexValue": "30",
                          "id": 4511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3578:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        {
                          "hexValue": "33",
                          "id": 4512,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3614:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1000000_by_1",
                            "typeString": "int_const 1000000"
                          },
                          {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          {
                            "typeIdentifier": "t_rational_900_by_1",
                            "typeString": "int_const 900"
                          },
                          {
                            "typeIdentifier": "t_rational_86400_by_1",
                            "typeString": "int_const 86400"
                          },
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          }
                        ],
                        "id": 4506,
                        "name": "UpdateConditions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28153,
                        "src": "3384:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_UpdateConditions_$28153_storage_ptr_$",
                          "typeString": "type(struct IWitPriceFeedsTypes.UpdateConditions storage pointer)"
                        }
                      },
                      "id": 4513,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "3416:11:19",
                        "3453:10:19",
                        "3485:12:19",
                        "3524:13:19",
                        "3560:16:19",
                        "3600:12:19"
                      ],
                      "names": [
                        "callbackGas",
                        "computeEma",
                        "cooldownSecs",
                        "heartbeatSecs",
                        "maxDeviation1000",
                        "minWitnesses"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "3384:243:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                      }
                    },
                    "src": "3346:281:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                    }
                  },
                  "id": 4515,
                  "nodeType": "ExpressionStatement",
                  "src": "3346:281:19"
                }
              ]
            },
            "id": 4517,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 4450,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 4445,
                        "name": "_operator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4442,
                        "src": "2822:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 4448,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2843:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 4447,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2835:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 4446,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2835:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4449,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2835:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "2822:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "expression": {
                        "id": 4452,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967281,
                        "src": "2860:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 4453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2864:6:19",
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "src": "2860:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2822:48:19",
                    "trueExpression": {
                      "id": 4451,
                      "name": "_operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4442,
                      "src": "2848:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 4455,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 4444,
                  "name": "Ownable",
                  "nameLocations": [
                    "2814:7:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 415,
                  "src": "2814:7:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "2814:57:19"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4440,
                  "mutability": "mutable",
                  "name": "_witOracle",
                  "nameLocation": "2751:10:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4517,
                  "src": "2743:18:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4439,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2743:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4442,
                  "mutability": "mutable",
                  "name": "_operator",
                  "nameLocation": "2784:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4517,
                  "src": "2776:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4441,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2776:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2728:76:19"
            },
            "returnParameters": {
              "id": 4456,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2877:0:19"
            },
            "scope": 6343,
            "src": "2717:918:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4563,
              "nodeType": "Block",
              "src": "3869:316:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 4532,
                          "name": "_curator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4519,
                          "src": "3889:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 4535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3909:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 4534,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3901:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 4533,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "3901:7:19",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 4536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3901:10:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3889:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "7a65726f2063757261746f72",
                        "id": 4538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3913:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f3d3dea7689f4d18bf878be7bd329439946de15b1985b3c19e2afeae84294d3e",
                          "typeString": "literal_string \"zero curator\""
                        },
                        "value": "zero curator"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f3d3dea7689f4d18bf878be7bd329439946de15b1985b3c19e2afeae84294d3e",
                          "typeString": "literal_string \"zero curator\""
                        }
                      ],
                      "id": 4531,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "3880:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3880:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4540,
                  "nodeType": "ExpressionStatement",
                  "src": "3880:48:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4542,
                        "name": "_curator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4519,
                        "src": "3958:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 4541,
                      "name": "_transferOwnership",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        45684
                      ],
                      "referencedDeclaration": 45684,
                      "src": "3939:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 4543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3939:28:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4544,
                  "nodeType": "ExpressionStatement",
                  "src": "3939:28:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4547,
                            "name": "_defaultUpdateConditions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4522,
                            "src": "4023:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          ],
                          "id": 4546,
                          "name": "_validateUpdateConditions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6197,
                          "src": "3997:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions memory) pure returns (bool)"
                          }
                        },
                        "id": 4548,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3997:51:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420636f6e646974696f6e73",
                        "id": 4549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4050:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        },
                        "value": "invalid conditions"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        }
                      ],
                      "id": 4545,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "3988:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 4550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3988:83:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4551,
                  "nodeType": "ExpressionStatement",
                  "src": "3988:83:19"
                },
                {
                  "expression": {
                    "id": 4556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4552,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "4082:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 4553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4082:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 4554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "4094:23:19",
                      "memberName": "defaultUpdateConditions",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22331,
                      "src": "4082:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 4555,
                      "name": "_defaultUpdateConditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4522,
                      "src": "4120:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                      }
                    },
                    "src": "4082:62:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                    }
                  },
                  "id": 4557,
                  "nodeType": "ExpressionStatement",
                  "src": "4082:62:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4560,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967268,
                        "src": "4172:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                          "typeString": "contract WitPriceFeedsV3"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                          "typeString": "contract WitPriceFeedsV3"
                        }
                      ],
                      "id": 4559,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "4164:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 4558,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4164:7:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 4561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4164:13:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4530,
                  "id": 4562,
                  "nodeType": "Return",
                  "src": "4157:20:19"
                }
              ]
            },
            "functionSelector": "fd91c054",
            "id": 4564,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4525,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4524,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "3803:12:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "3803:12:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "3803:12:19"
              },
              {
                "id": 4527,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4526,
                  "name": "initializer",
                  "nameLocations": [
                    "3825:11:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 107,
                  "src": "3825:11:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "3825:11:19"
              }
            ],
            "name": "initializeClone",
            "nameLocation": "3652:15:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4519,
                  "mutability": "mutable",
                  "name": "_curator",
                  "nameLocation": "3690:8:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4564,
                  "src": "3682:16:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4518,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3682:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4522,
                  "mutability": "mutable",
                  "name": "_defaultUpdateConditions",
                  "nameLocation": "3740:24:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4564,
                  "src": "3714:50:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 4521,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4520,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "3714:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "3714:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "3714:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3667:108:19"
            },
            "returnParameters": {
              "id": 4530,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4529,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4564,
                  "src": "3855:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4528,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3855:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3854:9:19"
            },
            "scope": 6343,
            "src": "3643:542:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              45420
            ],
            "body": {
              "id": 4578,
              "nodeType": "Block",
              "src": "4510:78:19",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    },
                    "id": 4576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 4571,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6342,
                            "src": "4528:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 4572,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4528:11:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                          }
                        },
                        "id": 4573,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4540:23:19",
                        "memberName": "defaultUpdateConditions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22331,
                        "src": "4528:35:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                        }
                      },
                      "id": 4574,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4564:12:19",
                      "memberName": "minWitnesses",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28152,
                      "src": "4528:48:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 4575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4579:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4528:52:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 4570,
                  "id": 4577,
                  "nodeType": "Return",
                  "src": "4521:59:19"
                }
              ]
            },
            "documentation": {
              "id": 4565,
              "nodeType": "StructuredDocumentation",
              "src": "4199:238:19",
              "text": "===============================================================================================================\n --- Clonable --------------------------------------------------------------------------------------------------"
            },
            "functionSelector": "158ef93e",
            "id": 4579,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialized",
            "nameLocation": "4452:11:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4567,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4474:8:19"
            },
            "parameters": {
              "id": 4566,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4463:2:19"
            },
            "returnParameters": {
              "id": 4570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4569,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4579,
                  "src": "4504:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4568,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4504:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4503:6:19"
            },
            "scope": 6343,
            "src": "4443:145:19",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              643
            ],
            "body": {
              "id": 4687,
              "nodeType": "Block",
              "src": "4997:833:19",
              "statements": [
                {
                  "assignments": [
                    4594
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4594,
                      "mutability": "mutable",
                      "name": "_id4",
                      "nameLocation": "5012:4:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4687,
                      "src": "5008:8:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                        "typeString": "IWitPriceFeedsTypes.ID4"
                      },
                      "typeName": {
                        "id": 4593,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 4592,
                          "name": "ID4",
                          "nameLocations": [
                            "5008:3:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28155,
                          "src": "5008:3:19"
                        },
                        "referencedDeclaration": 28155,
                        "src": "5008:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4602,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4599,
                            "name": "_id",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4582,
                            "src": "5035:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 4598,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5028:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes4_$",
                            "typeString": "type(bytes4)"
                          },
                          "typeName": {
                            "id": 4597,
                            "name": "bytes4",
                            "nodeType": "ElementaryTypeName",
                            "src": "5028:6:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4600,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5028:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "id": 4595,
                        "name": "ID4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28155,
                        "src": "5019:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                          "typeString": "type(IWitPriceFeedsTypes.ID4)"
                        }
                      },
                      "id": 4596,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "5023:4:19",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "5019:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                        "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                      }
                    },
                    "id": 4601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5019:21:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5008:32:19"
                },
                {
                  "assignments": [
                    4607
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4607,
                      "mutability": "mutable",
                      "name": "__record",
                      "nameLocation": "5090:8:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4687,
                      "src": "5051:47:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                      },
                      "typeName": {
                        "id": 4606,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 4605,
                          "name": "WitPriceFeedsDataLib.PriceFeed",
                          "nameLocations": [
                            "5051:20:19",
                            "5072:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22395,
                          "src": "5051:30:19"
                        },
                        "referencedDeclaration": 22395,
                        "src": "5051:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4611,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 4609,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4594,
                        "src": "5117:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "id": 4608,
                      "name": "__seekPriceFeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6212,
                      "src": "5101:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 4610,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5101:21:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5051:71:19"
                },
                {
                  "assignments": [
                    4614
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4614,
                      "mutability": "mutable",
                      "name": "_updateConditions",
                      "nameLocation": "5157:17:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4687,
                      "src": "5133:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                      },
                      "typeName": {
                        "id": 4613,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 4612,
                          "name": "UpdateConditions",
                          "nameLocations": [
                            "5133:16:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28153,
                          "src": "5133:16:19"
                        },
                        "referencedDeclaration": 28153,
                        "src": "5133:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4619,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 4615,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4607,
                          "src": "5177:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 4616,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5186:16:19",
                        "memberName": "updateConditions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22390,
                        "src": "5177:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                        }
                      },
                      "id": 4617,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5203:8:19",
                      "memberName": "coalesce",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23752,
                      "src": "5177:34:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_UpdateConditions_$28153_storage_ptr_$returns$_t_struct$_UpdateConditions_$28153_memory_ptr_$attached_to$_t_struct$_UpdateConditions_$28153_storage_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions storage pointer) view returns (struct IWitPriceFeedsTypes.UpdateConditions memory)"
                      }
                    },
                    "id": 4618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5177:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5133:80:19"
                },
                {
                  "assignments": [
                    4624
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4624,
                      "mutability": "mutable",
                      "name": "_lastUpdate",
                      "nameLocation": "5262:11:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4687,
                      "src": "5224:49:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceData"
                      },
                      "typeName": {
                        "id": 4623,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 4622,
                          "name": "WitPriceFeedsDataLib.PriceData",
                          "nameLocations": [
                            "5224:20:19",
                            "5245:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22357,
                          "src": "5224:30:19"
                        },
                        "referencedDeclaration": 22357,
                        "src": "5224:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceData_$22357_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceData"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4631,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 4627,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4594,
                        "src": "5301:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      {
                        "expression": {
                          "id": 4628,
                          "name": "_updateConditions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4614,
                          "src": "5307:17:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                            "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                          }
                        },
                        "id": 4629,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5325:13:19",
                        "memberName": "heartbeatSecs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 28148,
                        "src": "5307:31:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "expression": {
                        "id": 4625,
                        "name": "__record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4607,
                        "src": "5276:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                        }
                      },
                      "id": 4626,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5285:15:19",
                      "memberName": "fetchLastUpdate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22762,
                      "src": "5276:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_PriceFeed_$22395_storage_ptr_$_t_userDefinedValueType$_ID4_$28155_$_t_uint24_$returns$_t_struct$_PriceData_$22357_memory_ptr_$attached_to$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (struct WitPriceFeedsDataLib.PriceFeed storage pointer,IWitPriceFeedsTypes.ID4,uint24) view returns (struct WitPriceFeedsDataLib.PriceData memory)"
                      }
                    },
                    "id": 4630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5276:63:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5224:115:19"
                },
                {
                  "expression": {
                    "id": 4648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4632,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4586,
                      "src": "5350:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                },
                                "id": 4640,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 4637,
                                    "name": "_lastUpdate",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4624,
                                    "src": "5368:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                                      "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                                    }
                                  },
                                  "id": 4638,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "5380:8:19",
                                  "memberName": "emaPrice",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22339,
                                  "src": "5368:20:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint64",
                                    "typeString": "uint64"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 4639,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5391:1:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "5368:24:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "expression": {
                                  "id": 4643,
                                  "name": "_lastUpdate",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4624,
                                  "src": "5418:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                                    "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                                  }
                                },
                                "id": 4644,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5430:5:19",
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22342,
                                "src": "5418:17:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "id": 4645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "5368:67:19",
                              "trueExpression": {
                                "expression": {
                                  "id": 4641,
                                  "name": "_lastUpdate",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4624,
                                  "src": "5395:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                                    "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                                  }
                                },
                                "id": 4642,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "5407:8:19",
                                "memberName": "emaPrice",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22339,
                                "src": "5395:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 4636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "5363:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 4635,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "5363:4:19",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 4646,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5363:73:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5359:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 4633,
                          "name": "int",
                          "nodeType": "ElementaryTypeName",
                          "src": "5359:3:19",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 4647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5359:78:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "5350:87:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 4649,
                  "nodeType": "ExpressionStatement",
                  "src": "5350:87:19"
                },
                {
                  "expression": {
                    "id": 4660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4650,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4588,
                      "src": "5448:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 4656,
                                "name": "_lastUpdate",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4624,
                                "src": "5490:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                                  "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                                }
                              },
                              "id": 4657,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5502:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22352,
                              "src": "5490:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 4653,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "5466:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 4654,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5473:9:19",
                              "memberName": "Timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37157,
                              "src": "5466:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                "typeString": "type(Witnet.Timestamp)"
                              }
                            },
                            "id": 4655,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "5483:6:19",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "5466:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                            }
                          },
                          "id": 4658,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5466:46:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        ],
                        "id": 4652,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "5461:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 4651,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5461:4:19",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 4659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5461:52:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5448:65:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4661,
                  "nodeType": "ExpressionStatement",
                  "src": "5448:65:19"
                },
                {
                  "expression": {
                    "id": 4685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4662,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4590,
                      "src": "5524:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "components": [
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4665,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 4663,
                              "name": "_timestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4588,
                              "src": "5549:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 4664,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5563:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5549:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "components": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4678,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "expression": {
                                      "id": 4667,
                                      "name": "block",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967292,
                                      "src": "5631:5:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_block",
                                        "typeString": "block"
                                      }
                                    },
                                    "id": 4668,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "5637:9:19",
                                    "memberName": "timestamp",
                                    "nodeType": "MemberAccess",
                                    "src": "5631:15:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    },
                                    "id": 4677,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "arguments": [
                                        {
                                          "expression": {
                                            "id": 4672,
                                            "name": "_lastUpdate",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4624,
                                            "src": "5673:11:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_PriceData_$22357_memory_ptr",
                                              "typeString": "struct WitPriceFeedsDataLib.PriceData memory"
                                            }
                                          },
                                          "id": 4673,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "5685:9:19",
                                          "memberName": "timestamp",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 22352,
                                          "src": "5673:21:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                            "typeString": "Witnet.Timestamp"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                            "typeString": "Witnet.Timestamp"
                                          }
                                        ],
                                        "expression": {
                                          "expression": {
                                            "id": 4669,
                                            "name": "Witnet",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 40741,
                                            "src": "5649:6:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                              "typeString": "type(library Witnet)"
                                            }
                                          },
                                          "id": 4670,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "5656:9:19",
                                          "memberName": "Timestamp",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 37157,
                                          "src": "5649:16:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                            "typeString": "type(Witnet.Timestamp)"
                                          }
                                        },
                                        "id": 4671,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberLocation": "5666:6:19",
                                        "memberName": "unwrap",
                                        "nodeType": "MemberAccess",
                                        "src": "5649:23:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                                          "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                                        }
                                      },
                                      "id": 4674,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5649:46:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint64",
                                        "typeString": "uint64"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "+",
                                    "rightExpression": {
                                      "expression": {
                                        "id": 4675,
                                        "name": "_updateConditions",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4614,
                                        "src": "5698:17:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                                        }
                                      },
                                      "id": 4676,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "5716:13:19",
                                      "memberName": "heartbeatSecs",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 28148,
                                      "src": "5698:31:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint24",
                                        "typeString": "uint24"
                                      }
                                    },
                                    "src": "5649:80:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "src": "5631:98:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseExpression": {
                                  "hexValue": "323030",
                                  "id": 4680,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5789:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_200_by_1",
                                    "typeString": "int_const 200"
                                  },
                                  "value": "200"
                                },
                                "id": 4681,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "Conditional",
                                "src": "5631:161:19",
                                "trueExpression": {
                                  "hexValue": "343030",
                                  "id": 4679,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5757:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_400_by_1",
                                    "typeString": "int_const 400"
                                  },
                                  "value": "400"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              }
                            ],
                            "id": 4682,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5608:203:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "id": 4683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "5549:262:19",
                          "trueExpression": {
                            "hexValue": "343034",
                            "id": 4666,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5585:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_404_by_1",
                              "typeString": "int_const 404"
                            },
                            "value": "404"
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "id": 4684,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "5534:288:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "5524:298:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4686,
                  "nodeType": "ExpressionStatement",
                  "src": "5524:298:19"
                }
              ]
            },
            "documentation": {
              "id": 4580,
              "nodeType": "StructuredDocumentation",
              "src": "4606:238:19",
              "text": "===============================================================================================================\n --- IERC2362 --------------------------------------------------------------------------------------------------"
            },
            "functionSelector": "f78eea83",
            "id": 4688,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "valueFor",
            "nameLocation": "4859:8:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4584,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4890:8:19"
            },
            "parameters": {
              "id": 4583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4582,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "4876:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "4868:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4581,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4868:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4867:13:19"
            },
            "returnParameters": {
              "id": 4591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4586,
                  "mutability": "mutable",
                  "name": "_value",
                  "nameLocation": "4947:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "4940:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 4585,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4940:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4588,
                  "mutability": "mutable",
                  "name": "_timestamp",
                  "nameLocation": "4963:10:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "4955:18:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4587,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4955:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4590,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "4983:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4688,
                  "src": "4975:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4589,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4975:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4939:52:19"
            },
            "scope": 6343,
            "src": "4850:980:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29580
            ],
            "body": {
              "id": 4708,
              "nodeType": "Block",
              "src": "6492:110:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4703,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4692,
                                "src": "6578:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4702,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "6569:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4704,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6569:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "expression": {
                            "id": 4700,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "6539:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "6560:8:19",
                          "memberName": "getPrice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22854,
                          "src": "6539:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6539:44:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4699,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "6510:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6510:84:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4698,
                  "id": 4707,
                  "nodeType": "Return",
                  "src": "6503:91:19"
                }
              ]
            },
            "documentation": {
              "id": 4689,
              "nodeType": "StructuredDocumentation",
              "src": "6088:295:19",
              "text": "@notice Returns the exponentially-weighted moving average price.\n @dev Reverts if the EMA price is not available, or if the price feeds is settled with a heartbeat\n and the price was not recently updated.\n @param _id The Price Feed ID of which to fetch the EMA price."
            },
            "functionSelector": "b5dcc911",
            "id": 4709,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getEmaPrice",
            "nameLocation": "6398:11:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4694,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6441:8:19"
            },
            "parameters": {
              "id": 4693,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4692,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "6413:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4709,
                  "src": "6410:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4691,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4690,
                      "name": "ID",
                      "nameLocations": [
                        "6410:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "6410:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "6410:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6409:8:19"
            },
            "returnParameters": {
              "id": 4698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4697,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4709,
                  "src": "6469:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4696,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4695,
                      "name": "PythPrice",
                      "nameLocations": [
                        "6469:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "6469:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "6469:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6468:18:19"
            },
            "scope": 6343,
            "src": "6389:213:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29592
            ],
            "body": {
              "id": 4735,
              "nodeType": "Block",
              "src": "7107:136:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4726,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4713,
                                "src": "7205:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4725,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "7196:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4727,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7196:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "id": 4730,
                                "name": "_age",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4715,
                                "src": "7218:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 4729,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7211:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint24_$",
                                "typeString": "type(uint24)"
                              },
                              "typeName": {
                                "id": 4728,
                                "name": "uint24",
                                "nodeType": "ElementaryTypeName",
                                "src": "7211:6:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 4731,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7211:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            },
                            {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          ],
                          "expression": {
                            "id": 4723,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "7154:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "7175:20:19",
                          "memberName": "getPriceNotOlderThan",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22931,
                          "src": "7154:41:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$_t_uint24_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4,uint24) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7154:70:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4722,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "7125:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4733,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7125:110:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4721,
                  "id": 4734,
                  "nodeType": "Return",
                  "src": "7118:117:19"
                }
              ]
            },
            "documentation": {
              "id": 4710,
              "nodeType": "StructuredDocumentation",
              "src": "6610:364:19",
              "text": "@notice Returns the exponentially-weighted moving average price that is no older than `_age` seconds\n of the current time.\n @dev This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in\n applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently\n recently."
            },
            "functionSelector": "288b5e67",
            "id": 4736,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getEmaPriceNotOlderThan",
            "nameLocation": "6989:23:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4717,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7057:8:19"
            },
            "parameters": {
              "id": 4716,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4713,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "7016:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4736,
                  "src": "7013:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4712,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4711,
                      "name": "ID",
                      "nameLocations": [
                        "7013:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "7013:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "7013:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4715,
                  "mutability": "mutable",
                  "name": "_age",
                  "nameLocation": "7028:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4736,
                  "src": "7021:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 4714,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "7021:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7012:21:19"
            },
            "returnParameters": {
              "id": 4721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4720,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4736,
                  "src": "7084:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4719,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4718,
                      "name": "PythPrice",
                      "nameLocations": [
                        "7084:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "7084:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "7084:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7083:18:19"
            },
            "scope": 6343,
            "src": "6980:263:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29602
            ],
            "body": {
              "id": 4756,
              "nodeType": "Block",
              "src": "8186:116:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4751,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4740,
                                "src": "8278:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4750,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "8269:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4752,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8269:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "expression": {
                            "id": 4748,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "8233:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4749,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8254:14:19",
                          "memberName": "getPriceUnsafe",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22978,
                          "src": "8233:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8233:50:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4747,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "8204:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4754,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8204:90:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4746,
                  "id": 4755,
                  "nodeType": "Return",
                  "src": "8197:97:19"
                }
              ]
            },
            "documentation": {
              "id": 4737,
              "nodeType": "StructuredDocumentation",
              "src": "7251:819:19",
              "text": "@notice Returns the exponentially-weighted moving average price of a price feed without any sanity checks.\n @dev This function returns the same price as `getEmaPrice` in the case where the price is available.\n However, if the price is not recent this function returns the latest available price.\n The returned price can be from arbitrarily far in the past; this function makes no guarantees that\n the returned price is recent or useful for any particular application.\n Users of this function should check the `timestamp` in the price to ensure that the returned price is\n sufficiently recent for their application. If you are considering using this function, it may be\n safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`."
            },
            "functionSelector": "9474f45b",
            "id": 4757,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getEmaPriceUnsafe",
            "nameLocation": "8085:17:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4742,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8134:8:19"
            },
            "parameters": {
              "id": 4741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4740,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "8106:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4757,
                  "src": "8103:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4739,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4738,
                      "name": "ID",
                      "nameLocations": [
                        "8103:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "8103:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "8103:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8102:8:19"
            },
            "returnParameters": {
              "id": 4746,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4745,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4757,
                  "src": "8162:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4744,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4743,
                      "name": "PythPrice",
                      "nameLocations": [
                        "8162:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "8162:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "8162:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8161:18:19"
            },
            "scope": 6343,
            "src": "8076:226:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29612
            ],
            "body": {
              "id": 4777,
              "nodeType": "Block",
              "src": "8622:110:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4772,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4761,
                                "src": "8708:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4771,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "8699:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8699:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "expression": {
                            "id": 4769,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "8669:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "8690:8:19",
                          "memberName": "getPrice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22854,
                          "src": "8669:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8669:44:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4768,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "8640:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8640:84:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4767,
                  "id": 4776,
                  "nodeType": "Return",
                  "src": "8633:91:19"
                }
              ]
            },
            "documentation": {
              "id": 4758,
              "nodeType": "StructuredDocumentation",
              "src": "8310:207:19",
              "text": "@notice Returns the price of given price feed.\n @dev Reverts if the price has not been updated within the last `heartbeatSecs`. \n @param _id The Price Feed ID of which to fetch the price."
            },
            "functionSelector": "31d98b3f",
            "id": 4778,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPrice",
            "nameLocation": "8532:8:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4763,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8572:8:19"
            },
            "parameters": {
              "id": 4762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4761,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "8544:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4778,
                  "src": "8541:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4760,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4759,
                      "name": "ID",
                      "nameLocations": [
                        "8541:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "8541:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "8541:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8540:8:19"
            },
            "returnParameters": {
              "id": 4767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4766,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4778,
                  "src": "8599:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4765,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4764,
                      "name": "PythPrice",
                      "nameLocations": [
                        "8599:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "8599:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "8599:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8598:18:19"
            },
            "scope": 6343,
            "src": "8523:209:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29624
            ],
            "body": {
              "id": 4804,
              "nodeType": "Block",
              "src": "9195:136:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4795,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4782,
                                "src": "9293:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4794,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "9284:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9284:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "id": 4799,
                                "name": "_age",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4784,
                                "src": "9306:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint64",
                                  "typeString": "uint64"
                                }
                              ],
                              "id": 4798,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9299:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint24_$",
                                "typeString": "type(uint24)"
                              },
                              "typeName": {
                                "id": 4797,
                                "name": "uint24",
                                "nodeType": "ElementaryTypeName",
                                "src": "9299:6:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 4800,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9299:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            },
                            {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          ],
                          "expression": {
                            "id": 4792,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "9242:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4793,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9263:20:19",
                          "memberName": "getPriceNotOlderThan",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22931,
                          "src": "9242:41:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$_t_uint24_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4,uint24) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9242:70:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4791,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "9213:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9213:110:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4790,
                  "id": 4803,
                  "nodeType": "Return",
                  "src": "9206:117:19"
                }
              ]
            },
            "documentation": {
              "id": 4779,
              "nodeType": "StructuredDocumentation",
              "src": "8740:324:19",
              "text": "@notice Returns the price that is no older than `_age` seconds of the current time.\n @dev This function is a sanity-checked version of `getPriceUnsafe` which is useful in\n applications that require a sufficiently-recent price. \n Reverts if the price wasn't updated sufficiently\n recently."
            },
            "functionSelector": "9d61f28b",
            "id": 4805,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPriceNotOlderThan",
            "nameLocation": "9079:20:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4786,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9144:8:19"
            },
            "parameters": {
              "id": 4785,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4782,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "9103:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4805,
                  "src": "9100:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4781,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4780,
                      "name": "ID",
                      "nameLocations": [
                        "9100:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "9100:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "9100:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4784,
                  "mutability": "mutable",
                  "name": "_age",
                  "nameLocation": "9115:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4805,
                  "src": "9108:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 4783,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "9108:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9099:21:19"
            },
            "returnParameters": {
              "id": 4790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4789,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4805,
                  "src": "9172:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4788,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4787,
                      "name": "PythPrice",
                      "nameLocations": [
                        "9172:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "9172:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "9172:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9171:18:19"
            },
            "scope": 6343,
            "src": "9070:261:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29634
            ],
            "body": {
              "id": 4825,
              "nodeType": "Block",
              "src": "10032:116:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4820,
                                "name": "_id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4809,
                                "src": "10124:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "id": 4819,
                              "name": "_intoID4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6131,
                              "src": "10115:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                              }
                            },
                            "id": 4821,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10115:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "expression": {
                            "id": 4817,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "10079:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4818,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10100:14:19",
                          "memberName": "getPriceUnsafe",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22978,
                          "src": "10079:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 4822,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10079:50:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 4816,
                      "name": "_intoPythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "10050:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_Price_$28105_memory_ptr_$returns$_t_struct$_PythPrice_$29570_memory_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.Price memory) pure returns (struct IWitPyth.PythPrice memory)"
                      }
                    },
                    "id": 4823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10050:90:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 4815,
                  "id": 4824,
                  "nodeType": "Return",
                  "src": "10043:97:19"
                }
              ]
            },
            "documentation": {
              "id": 4806,
              "nodeType": "StructuredDocumentation",
              "src": "9339:582:19",
              "text": "@notice Returns the price of a price feed without any sanity checks.\n @dev This function returns the most recent price update in this contract without any recency checks.\n This function is unsafe as the returned price update may be arbitrarily far in the past.\n \n Users of this function should check the `timestamp` in the price to ensure that the returned price is\n sufficiently recent for their application. If you are considering using this function, it may be\n safer / easier to use either `getPrice` or `getPriceNoOlderThan`."
            },
            "functionSelector": "96834ad3",
            "id": 4826,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPriceUnsafe",
            "nameLocation": "9936:14:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4811,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9982:8:19"
            },
            "parameters": {
              "id": 4810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4809,
                  "mutability": "mutable",
                  "name": "_id",
                  "nameLocation": "9954:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4826,
                  "src": "9951:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4808,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4807,
                      "name": "ID",
                      "nameLocations": [
                        "9951:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "9951:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "9951:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9950:8:19"
            },
            "returnParameters": {
              "id": 4815,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4814,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4826,
                  "src": "10009:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 4813,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4812,
                      "name": "PythPrice",
                      "nameLocations": [
                        "10009:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "10009:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "10009:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10008:18:19"
            },
            "scope": 6343,
            "src": "9927:221:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              29642
            ],
            "body": {
              "id": 4837,
              "nodeType": "Block",
              "src": "10405:27:19",
              "statements": [
                {
                  "expression": {
                    "hexValue": "30",
                    "id": 4835,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10423:1:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "functionReturnParameters": 4834,
                  "id": 4836,
                  "nodeType": "Return",
                  "src": "10416:8:19"
                }
              ]
            },
            "documentation": {
              "id": 4827,
              "nodeType": "StructuredDocumentation",
              "src": "10156:164:19",
              "text": "@notice Legacy-compliant to get the required fee to update an array of price updates, which would be\n always 0 if relying from the Wit/Oracle framework."
            },
            "functionSelector": "238e0a8a",
            "id": 4838,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getUpdateFee",
            "nameLocation": "10335:12:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4831,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10373:8:19"
            },
            "parameters": {
              "id": 4830,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4829,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4838,
                  "src": "10348:14:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4828,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "10348:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10347:16:19"
            },
            "returnParameters": {
              "id": 4834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4833,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4838,
                  "src": "10396:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4832,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10396:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10395:9:19"
            },
            "scope": 6343,
            "src": "10326:106:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27723
            ],
            "body": {
              "id": 4858,
              "nodeType": "Block",
              "src": "11507:152:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4852,
                        "name": "_curator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4841,
                        "src": "11582:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 4853,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6342,
                            "src": "11605:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 4854,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11605:11:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                          }
                        },
                        "id": 4855,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "11617:23:19",
                        "memberName": "defaultUpdateConditions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22331,
                        "src": "11605:35:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 4848,
                              "name": "__clone",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45451,
                              "src": "11541:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_address_$",
                                "typeString": "function () returns (address)"
                              }
                            },
                            "id": 4849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11541:9:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4847,
                          "name": "WitPriceFeedsV3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6343,
                          "src": "11525:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsV3_$6343_$",
                            "typeString": "type(contract WitPriceFeedsV3)"
                          }
                        },
                        "id": 4850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11525:26:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                          "typeString": "contract WitPriceFeedsV3"
                        }
                      },
                      "id": 4851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11552:15:19",
                      "memberName": "initializeClone",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4564,
                      "src": "11525:42:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$_t_address_$",
                        "typeString": "function (address,struct IWitPriceFeedsTypes.UpdateConditions memory) external returns (address)"
                      }
                    },
                    "id": 4856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11525:126:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4846,
                  "id": 4857,
                  "nodeType": "Return",
                  "src": "11518:133:19"
                }
              ]
            },
            "documentation": {
              "id": 4839,
              "nodeType": "StructuredDocumentation",
              "src": "10809:582:19",
              "text": "Creates a light-proxy clone to the `base()` contract address, to be owned by the specified `curator` address. \n Curators of cloned contracts can optionally settle one single `IWitPriceFeedConsumer` consuming contract. \n The consuming contract, if settled, will be immediately reported every time a new Witnet-certified price update\n gets pushed into the cloned instance. Either way, price feeds data will be stored in the `WitPriceFeeds` storage. \n @param _curator Address that will have rights to manage price feeds on the new light-proxy clone."
            },
            "functionSelector": "8124b78e",
            "id": 4859,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "clone",
            "nameLocation": "11406:5:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4843,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11448:8:19"
            },
            "parameters": {
              "id": 4842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4841,
                  "mutability": "mutable",
                  "name": "_curator",
                  "nameLocation": "11420:8:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "11412:16:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4840,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11412:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11411:18:19"
            },
            "returnParameters": {
              "id": 4846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4845,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4859,
                  "src": "11493:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4844,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11493:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11492:9:19"
            },
            "scope": 6343,
            "src": "11397:262:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27738
            ],
            "body": {
              "id": 4922,
              "nodeType": "Block",
              "src": "11914:709:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4870,
                            "name": "symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4862,
                            "src": "11949:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "id": 4869,
                          "name": "supportsCaption",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5286,
                          "src": "11933:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_string_calldata_ptr_$returns$_t_bool_$",
                            "typeString": "function (string calldata) view returns (bool)"
                          }
                        },
                        "id": 4871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11933:23:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4872,
                          "name": "PriceFeedNotFound",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29690,
                          "src": "11958:17:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 4873,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11958:19:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 4868,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11925:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 4874,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11925:53:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4875,
                  "nodeType": "ExpressionStatement",
                  "src": "11925:53:19"
                },
                {
                  "assignments": [
                    4877
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4877,
                      "mutability": "mutable",
                      "name": "_initcode",
                      "nameLocation": "12002:9:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4922,
                      "src": "11989:22:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 4876,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "11989:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4882,
                  "initialValue": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 4879,
                          "name": "WitPythChainlinkAggregator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44805,
                          "src": "12019:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitPythChainlinkAggregator_$44805_$",
                            "typeString": "type(contract WitPythChainlinkAggregator)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitPythChainlinkAggregator_$44805_$",
                            "typeString": "type(contract WitPythChainlinkAggregator)"
                          }
                        ],
                        "id": 4878,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "12014:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 4880,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12014:32:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitPythChainlinkAggregator_$44805",
                        "typeString": "type(contract WitPythChainlinkAggregator)"
                      }
                    },
                    "id": 4881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "12047:12:19",
                    "memberName": "creationCode",
                    "nodeType": "MemberAccess",
                    "src": "12014:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11989:70:19"
                },
                {
                  "assignments": [
                    4884
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4884,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "12083:7:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4922,
                      "src": "12070:20:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 4883,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "12070:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4897,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4889,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967268,
                            "src": "12118:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                              "typeString": "contract WitPriceFeedsV3"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                              "typeString": "contract WitPriceFeedsV3"
                            }
                          ],
                          "id": 4888,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12110:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 4887,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "12110:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12110:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 4893,
                                "name": "symbol",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4862,
                                "src": "12139:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              ],
                              "id": 4892,
                              "name": "hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4982,
                              "src": "12134:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                              }
                            },
                            "id": 4894,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12134:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                              "typeString": "IWitPyth.ID"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                              "typeString": "IWitPyth.ID"
                            }
                          ],
                          "id": 4891,
                          "name": "_intoID4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6131,
                          "src": "12125:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 4895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12125:22:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "id": 4885,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "12093:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 4886,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "12097:12:19",
                      "memberName": "encodePacked",
                      "nodeType": "MemberAccess",
                      "src": "12093:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 4896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12093:55:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12070:78:19"
                },
                {
                  "assignments": [
                    4899
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4899,
                      "mutability": "mutable",
                      "name": "_aggregator",
                      "nameLocation": "12167:11:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 4922,
                      "src": "12159:19:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 4898,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "12159:7:19",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 4904,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 4901,
                        "name": "_initcode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4877,
                        "src": "12206:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 4902,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4884,
                        "src": "12217:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4900,
                      "name": "_determineCreate2Address",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6089,
                      "src": "12181:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$",
                        "typeString": "function (bytes memory,bytes memory) view returns (address)"
                      }
                    },
                    "id": 4903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12181:44:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12159:66:19"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "id": 4905,
                          "name": "_aggregator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4899,
                          "src": "12240:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4906,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "12252:4:19",
                        "memberName": "code",
                        "nodeType": "MemberAccess",
                        "src": "12240:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 4907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12257:6:19",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "12240:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 4908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12267:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12240:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4919,
                  "nodeType": "IfStatement",
                  "src": "12236:351:19",
                  "trueBody": {
                    "id": 4918,
                    "nodeType": "Block",
                    "src": "12270:317:19",
                    "statements": [
                      {
                        "assignments": [
                          4911
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4911,
                            "mutability": "mutable",
                            "name": "_bytecode",
                            "nameLocation": "12298:9:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 4918,
                            "src": "12285:22:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 4910,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "12285:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 4916,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 4913,
                              "name": "_initcode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4877,
                              "src": "12328:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "id": 4914,
                              "name": "_params",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4884,
                              "src": "12339:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 4912,
                            "name": "_completeInitCode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6046,
                            "src": "12310:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)"
                            }
                          },
                          "id": 4915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12310:37:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "12285:62:19"
                      },
                      {
                        "AST": {
                          "nativeSrc": "12371:205:19",
                          "nodeType": "YulBlock",
                          "src": "12371:205:19",
                          "statements": [
                            {
                              "nativeSrc": "12390:171:19",
                              "nodeType": "YulAssignment",
                              "src": "12390:171:19",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nativeSrc": "12435:1:19",
                                    "nodeType": "YulLiteral",
                                    "src": "12435:1:19",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "_bytecode",
                                        "nativeSrc": "12463:9:19",
                                        "nodeType": "YulIdentifier",
                                        "src": "12463:9:19"
                                      },
                                      {
                                        "kind": "number",
                                        "nativeSrc": "12474:4:19",
                                        "nodeType": "YulLiteral",
                                        "src": "12474:4:19",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nativeSrc": "12459:3:19",
                                      "nodeType": "YulIdentifier",
                                      "src": "12459:3:19"
                                    },
                                    "nativeSrc": "12459:20:19",
                                    "nodeType": "YulFunctionCall",
                                    "src": "12459:20:19"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "_bytecode",
                                        "nativeSrc": "12508:9:19",
                                        "nodeType": "YulIdentifier",
                                        "src": "12508:9:19"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nativeSrc": "12502:5:19",
                                      "nodeType": "YulIdentifier",
                                      "src": "12502:5:19"
                                    },
                                    "nativeSrc": "12502:16:19",
                                    "nodeType": "YulFunctionCall",
                                    "src": "12502:16:19"
                                  },
                                  {
                                    "kind": "number",
                                    "nativeSrc": "12541:1:19",
                                    "nodeType": "YulLiteral",
                                    "src": "12541:1:19",
                                    "type": "",
                                    "value": "0"
                                  }
                                ],
                                "functionName": {
                                  "name": "create2",
                                  "nativeSrc": "12405:7:19",
                                  "nodeType": "YulIdentifier",
                                  "src": "12405:7:19"
                                },
                                "nativeSrc": "12405:156:19",
                                "nodeType": "YulFunctionCall",
                                "src": "12405:156:19"
                              },
                              "variableNames": [
                                {
                                  "name": "_aggregator",
                                  "nativeSrc": "12390:11:19",
                                  "nodeType": "YulIdentifier",
                                  "src": "12390:11:19"
                                }
                              ]
                            }
                          ]
                        },
                        "evmVersion": "prague",
                        "externalReferences": [
                          {
                            "declaration": 4899,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "12390:11:19",
                            "valueSize": 1
                          },
                          {
                            "declaration": 4911,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "12463:9:19",
                            "valueSize": 1
                          },
                          {
                            "declaration": 4911,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "12508:9:19",
                            "valueSize": 1
                          }
                        ],
                        "id": 4917,
                        "nodeType": "InlineAssembly",
                        "src": "12362:214:19"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 4920,
                    "name": "_aggregator",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4899,
                    "src": "12604:11:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4867,
                  "id": 4921,
                  "nodeType": "Return",
                  "src": "12597:18:19"
                }
              ]
            },
            "documentation": {
              "id": 4860,
              "nodeType": "StructuredDocumentation",
              "src": "11667:115:19",
              "text": "Creates a Chainlink Aggregator proxy to the specified symbol.\n @dev Reverts if symbol is not supported."
            },
            "functionSelector": "e56bd315",
            "id": 4923,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createChainlinkAggregator",
            "nameLocation": "11797:25:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4864,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11864:8:19"
            },
            "parameters": {
              "id": 4863,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4862,
                  "mutability": "mutable",
                  "name": "symbol",
                  "nameLocation": "11839:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4923,
                  "src": "11823:22:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4861,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11823:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11822:24:19"
            },
            "returnParameters": {
              "id": 4867,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4866,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4923,
                  "src": "11900:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4865,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11900:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11899:9:19"
            },
            "scope": 6343,
            "src": "11788:835:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27715,
              45400
            ],
            "body": {
              "id": 4936,
              "nodeType": "Block",
              "src": "12846:38:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 4932,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "12864:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_WitPriceFeedsV3_$6343_$",
                          "typeString": "type(contract super WitPriceFeedsV3)"
                        }
                      },
                      "id": 4933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12870:4:19",
                      "memberName": "base",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45400,
                      "src": "12864:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 4934,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12864:12:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 4931,
                  "id": 4935,
                  "nodeType": "Return",
                  "src": "12857:19:19"
                }
              ]
            },
            "documentation": {
              "id": 4924,
              "nodeType": "StructuredDocumentation",
              "src": "12633:117:19",
              "text": "--- read-only methods -----------------------------------------------------------------------------------------"
            },
            "functionSelector": "5001f3b5",
            "id": 4937,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "base",
            "nameLocation": "12765:4:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4928,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 4926,
                  "name": "Clonable",
                  "nameLocations": [
                    "12790:8:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45518,
                  "src": "12790:8:19"
                },
                {
                  "id": 4927,
                  "name": "IWitPriceFeeds",
                  "nameLocations": [
                    "12800:14:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27848,
                  "src": "12800:14:19"
                }
              ],
              "src": "12780:35:19"
            },
            "parameters": {
              "id": 4925,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12769:2:19"
            },
            "returnParameters": {
              "id": 4931,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4930,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4937,
                  "src": "12837:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4929,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12837:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12836:9:19"
            },
            "scope": 6343,
            "src": "12756:128:19",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27730
            ],
            "body": {
              "id": 4951,
              "nodeType": "Block",
              "src": "13443:70:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 4946,
                            "name": "__storage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6342,
                            "src": "13484:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                              "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                            }
                          },
                          "id": 4947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13484:11:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                          }
                        },
                        "id": 4948,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "13496:8:19",
                        "memberName": "consumer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22333,
                        "src": "13484:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 4945,
                      "name": "IWitPriceFeedsConsumer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27992,
                      "src": "13461:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IWitPriceFeedsConsumer_$27992_$",
                        "typeString": "type(contract IWitPriceFeedsConsumer)"
                      }
                    },
                    "id": 4949,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13461:44:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitPriceFeedsConsumer_$27992",
                      "typeString": "contract IWitPriceFeedsConsumer"
                    }
                  },
                  "functionReturnParameters": 4944,
                  "id": 4950,
                  "nodeType": "Return",
                  "src": "13454:51:19"
                }
              ]
            },
            "documentation": {
              "id": 4938,
              "nodeType": "StructuredDocumentation",
              "src": "12892:469:19",
              "text": "Returns the consumer address where all price updates will be reported to.\n @dev If zero, new price updates will not be reported to any other external address.\n @dev The consumer contract must implement the `IWitPriceFeedsConsumer` interface, \n @dev and accept this instance as source of truth.\n @dev It can only be settled by a curator on cloned instances.\n @dev It can only be settled by a curator, only on cloned instances."
            },
            "functionSelector": "b4fd7296",
            "id": 4952,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "consumer",
            "nameLocation": "13376:8:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4940,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13387:8:19"
            },
            "parameters": {
              "id": 4939,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13384:2:19"
            },
            "returnParameters": {
              "id": 4944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4943,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4952,
                  "src": "13419:22:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IWitPriceFeedsConsumer_$27992",
                    "typeString": "contract IWitPriceFeedsConsumer"
                  },
                  "typeName": {
                    "id": 4942,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4941,
                      "name": "IWitPriceFeedsConsumer",
                      "nameLocations": [
                        "13419:22:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 27992,
                      "src": "13419:22:19"
                    },
                    "referencedDeclaration": 27992,
                    "src": "13419:22:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWitPriceFeedsConsumer_$27992",
                      "typeString": "contract IWitPriceFeedsConsumer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13418:24:19"
            },
            "scope": 6343,
            "src": "13367:146:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27751
            ],
            "body": {
              "id": 4963,
              "nodeType": "Block",
              "src": "13933:47:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 4959,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6342,
                        "src": "13951:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                        }
                      },
                      "id": 4960,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13951:11:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                      }
                    },
                    "id": 4961,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "13963:9:19",
                    "memberName": "footprint",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22335,
                    "src": "13951:21:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 4958,
                  "id": 4962,
                  "nodeType": "Return",
                  "src": "13944:28:19"
                }
              ]
            },
            "documentation": {
              "id": 4953,
              "nodeType": "StructuredDocumentation",
              "src": "13521:334:19",
              "text": "Returns a unique hash determined by the combination of data sources being used by \n supported non-routed price feeds, and dependencies of all supported routed \n price feeds. The footprint changes if any price feed is modified, added, removed \n or if the dependency tree of any routed price feed is altered."
            },
            "functionSelector": "8a416ea9",
            "id": 4964,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "footprint",
            "nameLocation": "13870:9:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4955,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13891:8:19"
            },
            "parameters": {
              "id": 4954,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13879:2:19"
            },
            "returnParameters": {
              "id": 4958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4957,
                  "mutability": "mutable",
                  "name": "_footprint",
                  "nameLocation": "13921:10:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4964,
                  "src": "13914:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 4956,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "13914:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13913:19:19"
            },
            "scope": 6343,
            "src": "13861:119:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27760
            ],
            "body": {
              "id": 4981,
              "nodeType": "Block",
              "src": "14115:69:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 4977,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4967,
                            "src": "14167:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "id": 4975,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "14141:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 4976,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14162:4:19",
                          "memberName": "hash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24565,
                          "src": "14141:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (string memory) pure returns (bytes32)"
                          }
                        },
                        "id": 4978,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14141:34:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 4973,
                        "name": "ID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29561,
                        "src": "14133:2:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_ID_$29561_$",
                          "typeString": "type(IWitPyth.ID)"
                        }
                      },
                      "id": 4974,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "14136:4:19",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "14133:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ID_$29561_$",
                        "typeString": "function (bytes32) pure returns (IWitPyth.ID)"
                      }
                    },
                    "id": 4979,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14133:43:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "functionReturnParameters": 4972,
                  "id": 4980,
                  "nodeType": "Return",
                  "src": "14126:50:19"
                }
              ]
            },
            "documentation": {
              "id": 4965,
              "nodeType": "StructuredDocumentation",
              "src": "13992:55:19",
              "text": "Determines unique ID for specified `symbol` string."
            },
            "functionSelector": "b411ee94",
            "id": 4982,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hash",
            "nameLocation": "14062:4:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4967,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "14081:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4982,
                  "src": "14067:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4966,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "14067:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14066:23:19"
            },
            "returnParameters": {
              "id": 4972,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4971,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4982,
                  "src": "14111:2:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 4970,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4969,
                      "name": "ID",
                      "nameLocations": [
                        "14111:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "14111:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "14111:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14110:4:19"
            },
            "scope": 6343,
            "src": "14053:131:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27770
            ],
            "body": {
              "id": 4998,
              "nodeType": "Block",
              "src": "15055:61:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4995,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4986,
                        "src": "15103:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "id": 4993,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "15073:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 4994,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15094:8:19",
                      "memberName": "getPrice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22854,
                      "src": "15073:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 4996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15073:35:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "functionReturnParameters": 4992,
                  "id": 4997,
                  "nodeType": "Return",
                  "src": "15066:42:19"
                }
              ]
            },
            "documentation": {
              "id": 4983,
              "nodeType": "StructuredDocumentation",
              "src": "14196:779:19",
              "text": "@notice Returns last update price for the specified ID4 price feed.\n Note: This function is sanity-checked version of `getPriceUnsafe` which is useful in applications and\n smart contracts that require recentl updated price, and no hint of market deviation being currently excessive. \n @dev Reverts if:\n - `StalePrice()`: the price feed has not been updated within the last `UpdateConditions.heartbeatSecs`,\n - `DeviantPrice()`: a deviation greater than `UpdateConditions.maxDeviation1000` was detected upon last update attempt.\n - `InvalidGovernanceTarget()`: no EMA is curretly settled to be computed for this price feed.\n @param _id4 Unique ID4 identifier of a price feed supported by this contract."
            },
            "functionSelector": "c66f4c0a",
            "id": 4999,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPrice",
            "nameLocation": "14990:8:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4988,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15023:8:19"
            },
            "parameters": {
              "id": 4987,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4986,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "15003:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 4999,
                  "src": "14999:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 4985,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4984,
                      "name": "ID4",
                      "nameLocations": [
                        "14999:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "14999:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "14999:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14998:10:19"
            },
            "returnParameters": {
              "id": 4992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4991,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4999,
                  "src": "15041:12:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Price"
                  },
                  "typeName": {
                    "id": 4990,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4989,
                      "name": "Price",
                      "nameLocations": [
                        "15041:5:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28105,
                      "src": "15041:5:19"
                    },
                    "referencedDeclaration": 28105,
                    "src": "15041:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15040:14:19"
            },
            "scope": 6343,
            "src": "14981:135:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27782
            ],
            "body": {
              "id": 5018,
              "nodeType": "Block",
              "src": "15828:79:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5014,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5003,
                        "src": "15888:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      {
                        "id": 5015,
                        "name": "_age",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5005,
                        "src": "15894:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "expression": {
                        "id": 5012,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "15846:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15867:20:19",
                      "memberName": "getPriceNotOlderThan",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22931,
                      "src": "15846:41:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$_t_uint24_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4,uint24) view returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 5016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15846:53:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "functionReturnParameters": 5011,
                  "id": 5017,
                  "nodeType": "Return",
                  "src": "15839:60:19"
                }
              ]
            },
            "documentation": {
              "id": 5000,
              "nodeType": "StructuredDocumentation",
              "src": "15124:599:19",
              "text": "@notice Returns last known price if no older than `_age` seconds of the current time.\n Note: This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications and\n smart contracts that require last known non-deviant price, last updated within specified time range.\n @dev Reverts if:\n - `StalePrice()`: the price feed has not been updated within the last `_age` seconds,\n \n @param _id4 Unique ID4 identifier of a price feed supported by this contract.\n @param _age Maximum age of acceptable price value."
            },
            "functionSelector": "d9ea438f",
            "id": 5019,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPriceNotOlderThan",
            "nameLocation": "15738:20:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5007,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15796:8:19"
            },
            "parameters": {
              "id": 5006,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5003,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "15763:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5019,
                  "src": "15759:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5002,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5001,
                      "name": "ID4",
                      "nameLocations": [
                        "15759:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "15759:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "15759:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5005,
                  "mutability": "mutable",
                  "name": "_age",
                  "nameLocation": "15776:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5019,
                  "src": "15769:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 5004,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "15769:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15758:23:19"
            },
            "returnParameters": {
              "id": 5011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5010,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5019,
                  "src": "15814:12:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Price"
                  },
                  "typeName": {
                    "id": 5009,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5008,
                      "name": "Price",
                      "nameLocations": [
                        "15814:5:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28105,
                      "src": "15814:5:19"
                    },
                    "referencedDeclaration": 28105,
                    "src": "15814:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15813:14:19"
            },
            "scope": 6343,
            "src": "15729:178:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27792
            ],
            "body": {
              "id": 5035,
              "nodeType": "Block",
              "src": "16573:67:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5032,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5023,
                        "src": "16627:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "id": 5030,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "16591:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5031,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "16612:14:19",
                      "memberName": "getPriceUnsafe",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22978,
                      "src": "16591:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                      }
                    },
                    "id": 5033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16591:41:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price memory"
                    }
                  },
                  "functionReturnParameters": 5029,
                  "id": 5034,
                  "nodeType": "Return",
                  "src": "16584:48:19"
                }
              ]
            },
            "documentation": {
              "id": 5020,
              "nodeType": "StructuredDocumentation",
              "src": "15915:572:19",
              "text": "@notice Returns last updated price without any sanity checks.\n Note: This function is unsafe as the returned price update may be arbitrarily far in the past.\n Users of this function should check the `timestamp` of each price feed to ensure that the returned values \n are sufficiently recent for their application. If you need safe access to fresh data, please consider\n using calling to either `getPrice` or `getPriceNoOlderThan` variants.\n \n @param _id4 Unique ID4 identifier of a price feed supported by this contract."
            },
            "functionSelector": "97445409",
            "id": 5036,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPriceUnsafe",
            "nameLocation": "16502:14:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5025,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16541:8:19"
            },
            "parameters": {
              "id": 5024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5023,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "16521:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5036,
                  "src": "16517:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5022,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5021,
                      "name": "ID4",
                      "nameLocations": [
                        "16517:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "16517:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "16517:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16516:10:19"
            },
            "returnParameters": {
              "id": 5029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5028,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5036,
                  "src": "16559:12:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Price"
                  },
                  "typeName": {
                    "id": 5027,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5026,
                      "name": "Price",
                      "nameLocations": [
                        "16559:5:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28105,
                      "src": "16559:5:19"
                    },
                    "referencedDeclaration": 28105,
                    "src": "16559:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16558:14:19"
            },
            "scope": 6343,
            "src": "16493:147:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27801
            ],
            "body": {
              "id": 5160,
              "nodeType": "Block",
              "src": "16764:1201:19",
              "statements": [
                {
                  "assignments": [
                    5050
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5050,
                      "mutability": "mutable",
                      "name": "__record",
                      "nameLocation": "16814:8:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "16775:47:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                      },
                      "typeName": {
                        "id": 5049,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5048,
                          "name": "WitPriceFeedsDataLib.PriceFeed",
                          "nameLocations": [
                            "16775:20:19",
                            "16796:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22395,
                          "src": "16775:30:19"
                        },
                        "referencedDeclaration": 22395,
                        "src": "16775:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5054,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5052,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5039,
                        "src": "16841:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "id": 5051,
                      "name": "__seekPriceFeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6212,
                      "src": "16825:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 5053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16825:21:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16775:71:19"
                },
                {
                  "assignments": [
                    5057
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5057,
                      "mutability": "mutable",
                      "name": "_mapper",
                      "nameLocation": "16865:7:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "16857:15:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mappers_$28087",
                        "typeString": "enum IWitPriceFeedsTypes.Mappers"
                      },
                      "typeName": {
                        "id": 5056,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5055,
                          "name": "Mappers",
                          "nameLocations": [
                            "16857:7:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28087,
                          "src": "16857:7:19"
                        },
                        "referencedDeclaration": 28087,
                        "src": "16857:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mappers_$28087",
                          "typeString": "enum IWitPriceFeedsTypes.Mappers"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5060,
                  "initialValue": {
                    "expression": {
                      "id": 5058,
                      "name": "__record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5050,
                      "src": "16875:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5059,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "16884:6:19",
                    "memberName": "mapper",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22373,
                    "src": "16875:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mappers_$28087",
                      "typeString": "enum IWitPriceFeedsTypes.Mappers"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16857:33:19"
                },
                {
                  "assignments": [
                    5065
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5065,
                      "mutability": "mutable",
                      "name": "_mapperDeps",
                      "nameLocation": "16917:11:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "16901:27:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                        "typeString": "string[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 5063,
                          "name": "string",
                          "nodeType": "ElementaryTypeName",
                          "src": "16901:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_storage_ptr",
                            "typeString": "string"
                          }
                        },
                        "id": 5064,
                        "nodeType": "ArrayTypeName",
                        "src": "16901:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                          "typeString": "string[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5066,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16901:27:19"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mappers_$28087",
                      "typeString": "enum IWitPriceFeedsTypes.Mappers"
                    },
                    "id": 5070,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5067,
                      "name": "_mapper",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5057,
                      "src": "16943:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mappers_$28087",
                        "typeString": "enum IWitPriceFeedsTypes.Mappers"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "expression": {
                        "id": 5068,
                        "name": "Mappers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28087,
                        "src": "16954:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mappers_$28087_$",
                          "typeString": "type(enum IWitPriceFeedsTypes.Mappers)"
                        }
                      },
                      "id": 5069,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "16962:4:19",
                      "memberName": "None",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28082,
                      "src": "16954:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mappers_$28087",
                        "typeString": "enum IWitPriceFeedsTypes.Mappers"
                      }
                    },
                    "src": "16943:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5116,
                  "nodeType": "IfStatement",
                  "src": "16939:296:19",
                  "trueBody": {
                    "id": 5115,
                    "nodeType": "Block",
                    "src": "16968:267:19",
                    "statements": [
                      {
                        "assignments": [
                          5075
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5075,
                            "mutability": "mutable",
                            "name": "_deps",
                            "nameLocation": "16996:5:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5115,
                            "src": "16983:18:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr",
                              "typeString": "IWitPriceFeedsTypes.ID4[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 5073,
                                "nodeType": "UserDefinedTypeName",
                                "pathNode": {
                                  "id": 5072,
                                  "name": "ID4",
                                  "nameLocations": [
                                    "16983:3:19"
                                  ],
                                  "nodeType": "IdentifierPath",
                                  "referencedDeclaration": 28155,
                                  "src": "16983:3:19"
                                },
                                "referencedDeclaration": 28155,
                                "src": "16983:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                  "typeString": "IWitPriceFeedsTypes.ID4"
                                }
                              },
                              "id": 5074,
                              "nodeType": "ArrayTypeName",
                              "src": "16983:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_storage_ptr",
                                "typeString": "IWitPriceFeedsTypes.ID4[]"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 5079,
                        "initialValue": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 5076,
                              "name": "_id4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5039,
                              "src": "17004:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              }
                            },
                            "id": 5077,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "17009:4:19",
                            "memberName": "deps",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23907,
                            "src": "17004:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr_$attached_to$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (IWitPriceFeedsTypes.ID4[] memory)"
                            }
                          },
                          "id": 5078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17004:11:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr",
                            "typeString": "IWitPriceFeedsTypes.ID4[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "16983:32:19"
                      },
                      {
                        "expression": {
                          "id": 5087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5080,
                            "name": "_mapperDeps",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5065,
                            "src": "17030:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 5084,
                                  "name": "_deps",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5075,
                                  "src": "17057:5:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr",
                                    "typeString": "IWitPriceFeedsTypes.ID4[] memory"
                                  }
                                },
                                "id": 5085,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "17063:6:19",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "17057:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5083,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "17044:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (string memory[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 5081,
                                  "name": "string",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "17048:6:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage_ptr",
                                    "typeString": "string"
                                  }
                                },
                                "id": 5082,
                                "nodeType": "ArrayTypeName",
                                "src": "17048:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                                  "typeString": "string[]"
                                }
                              }
                            },
                            "id": 5086,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17044:26:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          },
                          "src": "17030:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                            "typeString": "string memory[] memory"
                          }
                        },
                        "id": 5088,
                        "nodeType": "ExpressionStatement",
                        "src": "17030:40:19"
                      },
                      {
                        "body": {
                          "id": 5113,
                          "nodeType": "Block",
                          "src": "17132:92:19",
                          "statements": [
                            {
                              "expression": {
                                "id": 5111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 5100,
                                    "name": "_mapperDeps",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5065,
                                    "src": "17151:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "string memory[] memory"
                                    }
                                  },
                                  "id": 5102,
                                  "indexExpression": {
                                    "id": 5101,
                                    "name": "_ix",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5090,
                                    "src": "17163:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "17151:16:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "expression": {
                                    "baseExpression": {
                                      "expression": {
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 5103,
                                          "name": "__storage",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6342,
                                          "src": "17170:9:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                                          }
                                        },
                                        "id": 5104,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17170:11:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                                        }
                                      },
                                      "id": 5105,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "17182:7:19",
                                      "memberName": "records",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 22315,
                                      "src": "17170:19:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ID4_$28155_$_t_struct$_PriceFeed_$22395_storage_$",
                                        "typeString": "mapping(IWitPriceFeedsTypes.ID4 => struct WitPriceFeedsDataLib.PriceFeed storage ref)"
                                      }
                                    },
                                    "id": 5109,
                                    "indexExpression": {
                                      "baseExpression": {
                                        "id": 5106,
                                        "name": "_deps",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5075,
                                        "src": "17190:5:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr",
                                          "typeString": "IWitPriceFeedsTypes.ID4[] memory"
                                        }
                                      },
                                      "id": 5108,
                                      "indexExpression": {
                                        "id": 5107,
                                        "name": "_ix",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5090,
                                        "src": "17196:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "17190:10:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                        "typeString": "IWitPriceFeedsTypes.ID4"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "17170:31:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage",
                                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage ref"
                                    }
                                  },
                                  "id": 5110,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "17202:6:19",
                                  "memberName": "symbol",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22360,
                                  "src": "17170:38:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "src": "17151:57:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 5112,
                              "nodeType": "ExpressionStatement",
                              "src": "17151:57:19"
                            }
                          ]
                        },
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5096,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 5093,
                            "name": "_ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5090,
                            "src": "17104:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "expression": {
                              "id": 5094,
                              "name": "_deps",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5075,
                              "src": "17110:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_userDefinedValueType$_ID4_$28155_$dyn_memory_ptr",
                                "typeString": "IWitPriceFeedsTypes.ID4[] memory"
                              }
                            },
                            "id": 5095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "17116:6:19",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "17110:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "17104:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 5114,
                        "initializationExpression": {
                          "assignments": [
                            5090
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 5090,
                              "mutability": "mutable",
                              "name": "_ix",
                              "nameLocation": "17095:3:19",
                              "nodeType": "VariableDeclaration",
                              "scope": 5114,
                              "src": "17090:8:19",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 5089,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "17090:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 5092,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 5091,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17101:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "17090:12:19"
                        },
                        "isSimpleCounterLoop": true,
                        "loopExpression": {
                          "expression": {
                            "id": 5098,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": true,
                            "src": "17124:6:19",
                            "subExpression": {
                              "id": 5097,
                              "name": "_ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5090,
                              "src": "17127:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 5099,
                          "nodeType": "ExpressionStatement",
                          "src": "17124:6:19"
                        },
                        "nodeType": "ForStatement",
                        "src": "17085:139:19"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    5119
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5119,
                      "mutability": "mutable",
                      "name": "_oracle",
                      "nameLocation": "17253:7:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "17245:15:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Oracles_$28092",
                        "typeString": "enum IWitPriceFeedsTypes.Oracles"
                      },
                      "typeName": {
                        "id": 5118,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5117,
                          "name": "Oracles",
                          "nameLocations": [
                            "17245:7:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28092,
                          "src": "17245:7:19"
                        },
                        "referencedDeclaration": 28092,
                        "src": "17245:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Oracles_$28092",
                          "typeString": "enum IWitPriceFeedsTypes.Oracles"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5122,
                  "initialValue": {
                    "expression": {
                      "id": 5120,
                      "name": "__record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5050,
                      "src": "17263:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5121,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "17272:6:19",
                    "memberName": "oracle",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22377,
                    "src": "17263:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Oracles_$28092",
                      "typeString": "enum IWitPriceFeedsTypes.Oracles"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17245:33:19"
                },
                {
                  "assignments": [
                    5124
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5124,
                      "mutability": "mutable",
                      "name": "_oracleSources",
                      "nameLocation": "17297:14:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "17289:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5123,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17289:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5127,
                  "initialValue": {
                    "expression": {
                      "id": 5125,
                      "name": "__record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5050,
                      "src": "17314:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5126,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "17323:13:19",
                    "memberName": "oracleSources",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22383,
                    "src": "17314:22:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17289:47:19"
                },
                {
                  "assignments": [
                    5129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5129,
                      "mutability": "mutable",
                      "name": "_oracleAddress",
                      "nameLocation": "17355:14:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5160,
                      "src": "17347:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5128,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "17347:7:19",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5132,
                  "initialValue": {
                    "expression": {
                      "id": 5130,
                      "name": "__record",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5050,
                      "src": "17372:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5131,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "17381:13:19",
                    "memberName": "oracleAddress",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22380,
                    "src": "17372:22:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17347:47:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 5135,
                            "name": "_id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5039,
                            "src": "17446:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "id": 5134,
                          "name": "_intoID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6110,
                          "src": "17438:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_userDefinedValueType$_ID_$29561_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (IWitPyth.ID)"
                          }
                        },
                        "id": 5136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17438:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      },
                      {
                        "expression": {
                          "id": 5137,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5050,
                          "src": "17476:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5138,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17485:8:19",
                        "memberName": "exponent",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22366,
                        "src": "17476:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "expression": {
                          "id": 5139,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5050,
                          "src": "17516:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5140,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "17525:6:19",
                        "memberName": "symbol",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22360,
                        "src": "17516:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 5142,
                            "name": "_mapper",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5057,
                            "src": "17587:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mappers_$28087",
                              "typeString": "enum IWitPriceFeedsTypes.Mappers"
                            }
                          },
                          {
                            "id": 5143,
                            "name": "_mapperDeps",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5065,
                            "src": "17619:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_enum$_Mappers_$28087",
                              "typeString": "enum IWitPriceFeedsTypes.Mappers"
                            },
                            {
                              "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                              "typeString": "string memory[] memory"
                            }
                          ],
                          "id": 5141,
                          "name": "Mapper",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28132,
                          "src": "17554:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Mapper_$28132_storage_ptr_$",
                            "typeString": "type(struct IWitPriceFeedsTypes.Mapper storage pointer)"
                          }
                        },
                        "id": 5144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "17580:5:19",
                          "17613:4:19"
                        ],
                        "names": [
                          "class",
                          "deps"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "17554:92:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Mapper_$28132_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Mapper memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 5146,
                            "name": "_oracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5119,
                            "src": "17702:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Oracles_$28092",
                              "typeString": "enum IWitPriceFeedsTypes.Oracles"
                            }
                          },
                          {
                            "id": 5147,
                            "name": "_oracleAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5129,
                            "src": "17736:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "id": 5148,
                            "name": "_oracleSources",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5124,
                            "src": "17778:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_enum$_Oracles_$28092",
                              "typeString": "enum IWitPriceFeedsTypes.Oracles"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 5145,
                          "name": "Oracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 28140,
                          "src": "17669:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Oracle_$28140_storage_ptr_$",
                            "typeString": "type(struct IWitPriceFeedsTypes.Oracle storage pointer)"
                          }
                        },
                        "id": 5149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "17695:5:19",
                          "17728:6:19",
                          "17769:7:19"
                        ],
                        "names": [
                          "class",
                          "target",
                          "sources"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "17669:139:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Oracle_$28140_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Oracle memory"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "expression": {
                              "id": 5150,
                              "name": "__record",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5050,
                              "src": "17841:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                                "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                              }
                            },
                            "id": 5151,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "17850:16:19",
                            "memberName": "updateConditions",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22390,
                            "src": "17841:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                            }
                          },
                          "id": 5152,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "17867:8:19",
                          "memberName": "coalesce",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 23752,
                          "src": "17841:34:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_UpdateConditions_$28153_storage_ptr_$returns$_t_struct$_UpdateConditions_$28153_memory_ptr_$attached_to$_t_struct$_UpdateConditions_$28153_storage_ptr_$",
                            "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions storage pointer) view returns (struct IWitPriceFeedsTypes.UpdateConditions memory)"
                          }
                        },
                        "id": 5153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17841:36:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 5156,
                            "name": "_id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5039,
                            "src": "17940:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "expression": {
                            "id": 5154,
                            "name": "WitPriceFeedsDataLib",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 25111,
                            "src": "17904:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                              "typeString": "type(library WitPriceFeedsDataLib)"
                            }
                          },
                          "id": 5155,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "17925:14:19",
                          "memberName": "getPriceUnsafe",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22978,
                          "src": "17904:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_delegatecall_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Price_$28105_memory_ptr_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Price memory)"
                          }
                        },
                        "id": 5157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17904:41:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_string_storage",
                          "typeString": "string storage ref"
                        },
                        {
                          "typeIdentifier": "t_struct$_Mapper_$28132_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Mapper memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_Oracle_$28140_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Oracle memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Price memory"
                        }
                      ],
                      "id": 5133,
                      "name": "Info",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28125,
                      "src": "17414:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Info_$28125_storage_ptr_$",
                        "typeString": "type(struct IWitPriceFeedsTypes.Info storage pointer)"
                      }
                    },
                    "id": 5158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "17434:2:19",
                      "17466:8:19",
                      "17508:6:19",
                      "17546:6:19",
                      "17661:6:19",
                      "17823:16:19",
                      "17892:10:19"
                    ],
                    "names": [
                      "id",
                      "exponent",
                      "symbol",
                      "mapper",
                      "oracle",
                      "updateConditions",
                      "lastUpdate"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "17414:543:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Info_$28125_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Info memory"
                    }
                  },
                  "functionReturnParameters": 5045,
                  "id": 5159,
                  "nodeType": "Return",
                  "src": "17407:550:19"
                }
              ]
            },
            "functionSelector": "0683bcd2",
            "id": 5161,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lookupPriceFeed",
            "nameLocation": "16661:15:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5041,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16696:8:19"
            },
            "parameters": {
              "id": 5040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5039,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "16681:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5161,
                  "src": "16677:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5038,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5037,
                      "name": "ID4",
                      "nameLocations": [
                        "16677:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "16677:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "16677:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16676:10:19"
            },
            "returnParameters": {
              "id": 5045,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5044,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5161,
                  "src": "16746:11:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Info_$28125_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Info"
                  },
                  "typeName": {
                    "id": 5043,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5042,
                      "name": "Info",
                      "nameLocations": [
                        "16746:4:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28125,
                      "src": "16746:4:19"
                    },
                    "referencedDeclaration": 28125,
                    "src": "16746:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Info_$28125_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Info"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "16745:13:19"
            },
            "scope": 6343,
            "src": "16652:1313:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27809
            ],
            "body": {
              "id": 5175,
              "nodeType": "Block",
              "src": "18070:54:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 5171,
                          "name": "_id4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5164,
                          "src": "18104:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        ],
                        "id": 5170,
                        "name": "__seekPriceFeed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6212,
                        "src": "18088:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                          "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                        }
                      },
                      "id": 5172,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18088:21:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5173,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "18110:6:19",
                    "memberName": "symbol",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22360,
                    "src": "18088:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 5169,
                  "id": 5174,
                  "nodeType": "Return",
                  "src": "18081:35:19"
                }
              ]
            },
            "functionSelector": "e27b1088",
            "id": 5176,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lookupPriceFeedCaption",
            "nameLocation": "17982:22:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5166,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18024:8:19"
            },
            "parameters": {
              "id": 5165,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5164,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "18009:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5176,
                  "src": "18005:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5163,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5162,
                      "name": "ID4",
                      "nameLocations": [
                        "18005:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "18005:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "18005:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18004:10:19"
            },
            "returnParameters": {
              "id": 5169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5168,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "18061:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5176,
                  "src": "18047:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5167,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18047:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18046:23:19"
            },
            "scope": 6343,
            "src": "17973:151:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27817
            ],
            "body": {
              "id": 5190,
              "nodeType": "Block",
              "src": "18211:56:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 5186,
                          "name": "_id4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5179,
                          "src": "18245:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        ],
                        "id": 5185,
                        "name": "__seekPriceFeed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6212,
                        "src": "18229:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                          "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                        }
                      },
                      "id": 5187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18229:21:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                      }
                    },
                    "id": 5188,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "18251:8:19",
                    "memberName": "exponent",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22366,
                    "src": "18229:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "functionReturnParameters": 5184,
                  "id": 5189,
                  "nodeType": "Return",
                  "src": "18222:37:19"
                }
              ]
            },
            "functionSelector": "274d45db",
            "id": 5191,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lookupPriceFeedExponent",
            "nameLocation": "18141:23:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5181,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18175:8:19"
            },
            "parameters": {
              "id": 5180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5179,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "18169:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5191,
                  "src": "18165:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5178,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5177,
                      "name": "ID4",
                      "nameLocations": [
                        "18165:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "18165:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "18165:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18164:10:19"
            },
            "returnParameters": {
              "id": 5184,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5183,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5191,
                  "src": "18205:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 5182,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "18205:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18204:6:19"
            },
            "scope": 6343,
            "src": "18132:135:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27825
            ],
            "body": {
              "id": 5207,
              "nodeType": "Block",
              "src": "18351:50:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 5203,
                            "name": "_id4",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5194,
                            "src": "18387:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                              "typeString": "IWitPriceFeedsTypes.ID4"
                            }
                          ],
                          "id": 5202,
                          "name": "_intoID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6110,
                          "src": "18379:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_userDefinedValueType$_ID_$29561_$",
                            "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (IWitPyth.ID)"
                          }
                        },
                        "id": 5204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18379:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      ],
                      "expression": {
                        "id": 5200,
                        "name": "ID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29561,
                        "src": "18369:2:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_ID_$29561_$",
                          "typeString": "type(IWitPyth.ID)"
                        }
                      },
                      "id": 5201,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "18372:6:19",
                      "memberName": "unwrap",
                      "nodeType": "MemberAccess",
                      "src": "18369:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_bytes32_$",
                        "typeString": "function (IWitPyth.ID) pure returns (bytes32)"
                      }
                    },
                    "id": 5205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18369:24:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 5199,
                  "id": 5206,
                  "nodeType": "Return",
                  "src": "18362:31:19"
                }
              ]
            },
            "functionSelector": "e36a1d9e",
            "id": 5208,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lookupPriceFeedID",
            "nameLocation": "18284:17:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5196,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18312:8:19"
            },
            "parameters": {
              "id": 5195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5194,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "18306:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5208,
                  "src": "18302:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 5193,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5192,
                      "name": "ID4",
                      "nameLocations": [
                        "18302:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "18302:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "18302:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18301:10:19"
            },
            "returnParameters": {
              "id": 5199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5198,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5208,
                  "src": "18342:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18342:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18341:9:19"
            },
            "scope": 6343,
            "src": "18275:126:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27833
            ],
            "body": {
              "id": 5259,
              "nodeType": "Block",
              "src": "18495:231:19",
              "statements": [
                {
                  "assignments": [
                    5220
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5220,
                      "mutability": "mutable",
                      "name": "__ids",
                      "nameLocation": "18519:5:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5259,
                      "src": "18506:18:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage_ptr",
                        "typeString": "IWitPyth.ID[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 5218,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 5217,
                            "name": "ID",
                            "nameLocations": [
                              "18506:2:19"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 29561,
                            "src": "18506:2:19"
                          },
                          "referencedDeclaration": 29561,
                          "src": "18506:2:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                            "typeString": "IWitPyth.ID"
                          }
                        },
                        "id": 5219,
                        "nodeType": "ArrayTypeName",
                        "src": "18506:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage_ptr",
                          "typeString": "IWitPyth.ID[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5224,
                  "initialValue": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5221,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6342,
                        "src": "18527:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                        }
                      },
                      "id": 5222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18527:11:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                      }
                    },
                    "id": 5223,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "18539:3:19",
                    "memberName": "ids",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22309,
                    "src": "18527:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage",
                      "typeString": "IWitPyth.ID[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18506:36:19"
                },
                {
                  "expression": {
                    "id": 5233,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5225,
                      "name": "_infos",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5214,
                      "src": "18553:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Info memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "expression": {
                            "id": 5230,
                            "name": "__ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5220,
                            "src": "18573:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage_ptr",
                              "typeString": "IWitPyth.ID[] storage pointer"
                            }
                          },
                          "id": 5231,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "18579:6:19",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "18573:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 5229,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "18562:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct IWitPriceFeedsTypes.Info memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 5227,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 5226,
                              "name": "Info",
                              "nameLocations": [
                                "18566:4:19"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 28125,
                              "src": "18566:4:19"
                            },
                            "referencedDeclaration": 28125,
                            "src": "18566:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Info_$28125_storage_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.Info"
                            }
                          },
                          "id": 5228,
                          "nodeType": "ArrayTypeName",
                          "src": "18566:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Info_$28125_storage_$dyn_storage_ptr",
                            "typeString": "struct IWitPriceFeedsTypes.Info[]"
                          }
                        }
                      },
                      "id": 5232,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18562:24:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Info memory[] memory"
                      }
                    },
                    "src": "18553:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Info memory[] memory"
                    }
                  },
                  "id": 5234,
                  "nodeType": "ExpressionStatement",
                  "src": "18553:33:19"
                },
                {
                  "body": {
                    "id": 5257,
                    "nodeType": "Block",
                    "src": "18641:78:19",
                    "statements": [
                      {
                        "expression": {
                          "id": 5255,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5245,
                              "name": "_infos",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5214,
                              "src": "18656:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Info memory[] memory"
                              }
                            },
                            "id": 5247,
                            "indexExpression": {
                              "id": 5246,
                              "name": "_ix",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5236,
                              "src": "18663:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "18656:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Info_$28125_memory_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.Info memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 5250,
                                      "name": "__ids",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5220,
                                      "src": "18695:5:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage_ptr",
                                        "typeString": "IWitPyth.ID[] storage pointer"
                                      }
                                    },
                                    "id": 5252,
                                    "indexExpression": {
                                      "id": 5251,
                                      "name": "_ix",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5236,
                                      "src": "18701:3:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "18695:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                      "typeString": "IWitPyth.ID"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                      "typeString": "IWitPyth.ID"
                                    }
                                  ],
                                  "id": 5249,
                                  "name": "_intoID4",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6131,
                                  "src": "18686:8:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                    "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                                  }
                                },
                                "id": 5253,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "18686:20:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                  "typeString": "IWitPriceFeedsTypes.ID4"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                  "typeString": "IWitPriceFeedsTypes.ID4"
                                }
                              ],
                              "id": 5248,
                              "name": "lookupPriceFeed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5161,
                              "src": "18670:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_Info_$28125_memory_ptr_$",
                                "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct IWitPriceFeedsTypes.Info memory)"
                              }
                            },
                            "id": 5254,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18670:37:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Info_$28125_memory_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.Info memory"
                            }
                          },
                          "src": "18656:51:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Info_$28125_memory_ptr",
                            "typeString": "struct IWitPriceFeedsTypes.Info memory"
                          }
                        },
                        "id": 5256,
                        "nodeType": "ExpressionStatement",
                        "src": "18656:51:19"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5241,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5238,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5236,
                      "src": "18612:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5239,
                        "name": "_infos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5214,
                        "src": "18618:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.Info memory[] memory"
                        }
                      },
                      "id": 5240,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "18625:6:19",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "18618:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18612:19:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5258,
                  "initializationExpression": {
                    "assignments": [
                      5236
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5236,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "18607:3:19",
                        "nodeType": "VariableDeclaration",
                        "scope": 5258,
                        "src": "18602:8:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5235,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "18602:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5237,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "18602:8:19"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 5243,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "18633:6:19",
                      "subExpression": {
                        "id": 5242,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5236,
                        "src": "18636:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5244,
                    "nodeType": "ExpressionStatement",
                    "src": "18633:6:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "18597:122:19"
                }
              ]
            },
            "functionSelector": "3108e1b8",
            "id": 5260,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lookupPriceFeeds",
            "nameLocation": "18422:16:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5210,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18450:8:19"
            },
            "parameters": {
              "id": 5209,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18438:2:19"
            },
            "returnParameters": {
              "id": 5215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5214,
                  "mutability": "mutable",
                  "name": "_infos",
                  "nameLocation": "18487:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5260,
                  "src": "18473:20:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Info_$28125_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Info[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5212,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 5211,
                        "name": "Info",
                        "nameLocations": [
                          "18473:4:19"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 28125,
                        "src": "18473:4:19"
                      },
                      "referencedDeclaration": 28125,
                      "src": "18473:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Info_$28125_storage_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.Info"
                      }
                    },
                    "id": 5213,
                    "nodeType": "ArrayTypeName",
                    "src": "18473:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Info_$28125_storage_$dyn_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Info[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18472:22:19"
            },
            "scope": 6343,
            "src": "18413:313:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27841
            ],
            "body": {
              "id": 5285,
              "nodeType": "Block",
              "src": "18821:146:19",
              "statements": [
                {
                  "assignments": [
                    5272
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5272,
                      "mutability": "mutable",
                      "name": "__record",
                      "nameLocation": "18871:8:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5285,
                      "src": "18832:47:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                      },
                      "typeName": {
                        "id": 5271,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5270,
                          "name": "WitPriceFeedsDataLib.PriceFeed",
                          "nameLocations": [
                            "18832:20:19",
                            "18853:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22395,
                          "src": "18832:30:19"
                        },
                        "referencedDeclaration": 22395,
                        "src": "18832:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5280,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 5276,
                                "name": "_caption",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5262,
                                "src": "18912:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_calldata_ptr",
                                  "typeString": "string calldata"
                                }
                              ],
                              "id": 5275,
                              "name": "hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4982,
                              "src": "18907:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                              }
                            },
                            "id": 5277,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18907:14:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                              "typeString": "IWitPyth.ID"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                              "typeString": "IWitPyth.ID"
                            }
                          ],
                          "id": 5274,
                          "name": "_intoID4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6131,
                          "src": "18898:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                            "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                          }
                        },
                        "id": 5278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18898:24:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "id": 5273,
                      "name": "__seekPriceFeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6212,
                      "src": "18882:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 5279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18882:41:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18832:91:19"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5281,
                        "name": "__record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5272,
                        "src": "18941:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                        }
                      },
                      "id": 5282,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "18950:7:19",
                      "memberName": "settled",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24632,
                      "src": "18941:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_PriceFeed_$22395_storage_ptr_$returns$_t_bool_$attached_to$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (struct WitPriceFeedsDataLib.PriceFeed storage pointer) view returns (bool)"
                      }
                    },
                    "id": 5283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18941:18:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5267,
                  "id": 5284,
                  "nodeType": "Return",
                  "src": "18934:25:19"
                }
              ]
            },
            "functionSelector": "c5010d17",
            "id": 5286,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsCaption",
            "nameLocation": "18743:15:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5264,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18792:8:19"
            },
            "parameters": {
              "id": 5263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5262,
                  "mutability": "mutable",
                  "name": "_caption",
                  "nameLocation": "18775:8:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5286,
                  "src": "18759:24:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5261,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18759:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18758:26:19"
            },
            "returnParameters": {
              "id": 5267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5266,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5286,
                  "src": "18815:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5265,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "18815:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "18814:6:19"
            },
            "scope": 6343,
            "src": "18734:233:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27857,
              45708
            ],
            "body": {
              "id": 5298,
              "nodeType": "Block",
              "src": "19331:49:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5293,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45709,
                        "src": "19342:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$45709_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 5295,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19355:15:19",
                      "memberName": "acceptOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45708,
                      "src": "19342:28:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 5296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19342:30:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5297,
                  "nodeType": "ExpressionStatement",
                  "src": "19342:30:19"
                }
              ]
            },
            "documentation": {
              "id": 5287,
              "nodeType": "StructuredDocumentation",
              "src": "18977:238:19",
              "text": "===============================================================================================================\n --- IWitPriceFeedsAdmin ---------------------------------------------------------------------------------------"
            },
            "functionSelector": "79ba5097",
            "id": 5299,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptOwnership",
            "nameLocation": "19230:15:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5291,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5289,
                  "name": "IWitPriceFeedsAdmin",
                  "nameLocations": [
                    "19275:19:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27955,
                  "src": "19275:19:19"
                },
                {
                  "id": 5290,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "19296:12:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "19296:12:19"
                }
              ],
              "src": "19265:44:19"
            },
            "parameters": {
              "id": 5288,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19245:2:19"
            },
            "returnParameters": {
              "id": 5292,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19331:0:19"
            },
            "scope": 6343,
            "src": "19221:159:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27745
            ],
            "body": {
              "id": 5310,
              "nodeType": "Block",
              "src": "19503:61:19",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5306,
                        "name": "__storage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6342,
                        "src": "19521:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                          "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                        }
                      },
                      "id": 5307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19521:11:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                      }
                    },
                    "id": 5308,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "19533:23:19",
                    "memberName": "defaultUpdateConditions",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22331,
                    "src": "19521:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                    }
                  },
                  "functionReturnParameters": 5305,
                  "id": 5309,
                  "nodeType": "Return",
                  "src": "19514:42:19"
                }
              ]
            },
            "functionSelector": "9190795f",
            "id": 5311,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "defaultUpdateConditions",
            "nameLocation": "19397:23:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5301,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "19446:8:19"
            },
            "parameters": {
              "id": 5300,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19420:2:19"
            },
            "returnParameters": {
              "id": 5305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5304,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5311,
                  "src": "19473:23:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 5303,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5302,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "19473:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "19473:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "19473:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19472:25:19"
            },
            "scope": 6343,
            "src": "19388:176:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              335,
              27862
            ],
            "body": {
              "id": 5323,
              "nodeType": "Block",
              "src": "19700:41:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5319,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 415,
                        "src": "19718:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$415_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 5320,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19726:5:19",
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 335,
                      "src": "19718:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 5321,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19718:15:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 5318,
                  "id": 5322,
                  "nodeType": "Return",
                  "src": "19711:22:19"
                }
              ]
            },
            "functionSelector": "8da5cb5b",
            "id": 5324,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "owner",
            "nameLocation": "19581:5:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5315,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5313,
                  "name": "IWitPriceFeedsAdmin",
                  "nameLocations": [
                    "19616:19:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27955,
                  "src": "19616:19:19"
                },
                {
                  "id": 5314,
                  "name": "Ownable",
                  "nameLocations": [
                    "19637:7:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 415,
                  "src": "19637:7:19"
                }
              ],
              "src": "19606:39:19"
            },
            "parameters": {
              "id": 5312,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19586:2:19"
            },
            "returnParameters": {
              "id": 5318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5317,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5324,
                  "src": "19686:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5316,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19686:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19685:9:19"
            },
            "scope": 6343,
            "src": "19572:169:19",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27867,
              45647
            ],
            "body": {
              "id": 5336,
              "nodeType": "Block",
              "src": "19889:53:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5332,
                        "name": "Ownable2Step",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45709,
                        "src": "19907:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable2Step_$45709_$",
                          "typeString": "type(contract Ownable2Step)"
                        }
                      },
                      "id": 5333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "19920:12:19",
                      "memberName": "pendingOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 45647,
                      "src": "19907:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 5334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19907:27:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 5331,
                  "id": 5335,
                  "nodeType": "Return",
                  "src": "19900:34:19"
                }
              ]
            },
            "functionSelector": "e30c3978",
            "id": 5337,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pendingOwner",
            "nameLocation": "19758:12:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5328,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5326,
                  "name": "IWitPriceFeedsAdmin",
                  "nameLocations": [
                    "19801:19:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27955,
                  "src": "19801:19:19"
                },
                {
                  "id": 5327,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "19822:12:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "19822:12:19"
                }
              ],
              "src": "19791:44:19"
            },
            "parameters": {
              "id": 5325,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19770:2:19"
            },
            "returnParameters": {
              "id": 5331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5330,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5337,
                  "src": "19875:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19875:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19874:9:19"
            },
            "scope": 6343,
            "src": "19749:193:19",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27954,
              45667
            ],
            "body": {
              "id": 5353,
              "nodeType": "Block",
              "src": "20103:55:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5350,
                        "name": "_newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5339,
                        "src": "20140:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 5347,
                        "name": "Ownable",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 415,
                        "src": "20114:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Ownable_$415_$",
                          "typeString": "type(contract Ownable)"
                        }
                      },
                      "id": 5349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "20122:17:19",
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 394,
                      "src": "20114:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20114:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5352,
                  "nodeType": "ExpressionStatement",
                  "src": "20114:36:19"
                }
              ]
            },
            "functionSelector": "f2fde38b",
            "id": 5354,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5345,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5344,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "20088:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "20088:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "20088:9:19"
              }
            ],
            "name": "transferOwnership",
            "nameLocation": "19963:17:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5343,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5341,
                  "name": "IWitPriceFeedsAdmin",
                  "nameLocations": [
                    "20027:19:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 27955,
                  "src": "20027:19:19"
                },
                {
                  "id": 5342,
                  "name": "Ownable2Step",
                  "nameLocations": [
                    "20048:12:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45709,
                  "src": "20048:12:19"
                }
              ],
              "src": "20017:44:19"
            },
            "parameters": {
              "id": 5340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5339,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "19989:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5354,
                  "src": "19981:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5338,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "19981:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19980:19:19"
            },
            "returnParameters": {
              "id": 5346,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20103:0:19"
            },
            "scope": 6343,
            "src": "19954:204:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27876
            ],
            "body": {
              "id": 5393,
              "nodeType": "Block",
              "src": "20324:296:19",
              "statements": [
                {
                  "assignments": [
                    5368
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5368,
                      "mutability": "mutable",
                      "name": "_id4",
                      "nameLocation": "20339:4:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 5393,
                      "src": "20335:8:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                        "typeString": "IWitPriceFeedsTypes.ID4"
                      },
                      "typeName": {
                        "id": 5367,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5366,
                          "name": "ID4",
                          "nameLocations": [
                            "20335:3:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28155,
                          "src": "20335:3:19"
                        },
                        "referencedDeclaration": 28155,
                        "src": "20335:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5374,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 5371,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5356,
                            "src": "20360:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "id": 5370,
                          "name": "hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4982,
                          "src": "20355:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                            "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                          }
                        },
                        "id": 5372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20355:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      ],
                      "id": 5369,
                      "name": "_intoID4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6131,
                      "src": "20346:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                        "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                      }
                    },
                    "id": 5373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20346:23:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20335:34:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5378,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5368,
                        "src": "20417:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      {
                        "id": 5379,
                        "name": "_recursively",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5358,
                        "src": "20423:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "id": 5375,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "20380:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5377,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "20401:15:19",
                      "memberName": "removePriceFeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23159,
                      "src": "20380:36:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_userDefinedValueType$_ID4_$28155_$_t_bool_$returns$__$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4,bool)"
                      }
                    },
                    "id": 5380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20380:56:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5381,
                  "nodeType": "ExpressionStatement",
                  "src": "20380:56:19"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 5383,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "20483:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "20487:6:19",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "20483:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5385,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5368,
                        "src": "20509:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      {
                        "id": 5386,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5356,
                        "src": "20529:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 5382,
                      "name": "PriceFeedRemoved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28044,
                      "src": "20452:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory)"
                      }
                    },
                    "id": 5387,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20452:95:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5388,
                  "nodeType": "EmitStatement",
                  "src": "20447:100:19"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5389,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "20565:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5390,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "20586:24:19",
                      "memberName": "settlePriceFeedFootprint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23176,
                      "src": "20565:45:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$__$returns$_t_bytes4_$",
                        "typeString": "function () returns (bytes4)"
                      }
                    },
                    "id": 5391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20565:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 5365,
                  "id": 5392,
                  "nodeType": "Return",
                  "src": "20558:54:19"
                }
              ]
            },
            "functionSelector": "4c7510d0",
            "id": 5394,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5362,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5361,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "20272:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "20272:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "20272:9:19"
              }
            ],
            "name": "removePriceFeed",
            "nameLocation": "20175:15:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5360,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20254:8:19"
            },
            "parameters": {
              "id": 5359,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5356,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "20207:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5394,
                  "src": "20191:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5355,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "20191:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5358,
                  "mutability": "mutable",
                  "name": "_recursively",
                  "nameLocation": "20221:12:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5394,
                  "src": "20216:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5357,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20216:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20190:44:19"
            },
            "returnParameters": {
              "id": 5365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5364,
                  "mutability": "mutable",
                  "name": "_footprint",
                  "nameLocation": "20307:10:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5394,
                  "src": "20300:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5363,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "20300:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20299:19:19"
            },
            "scope": 6343,
            "src": "20166:454:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27881
            ],
            "body": {
              "id": 5445,
              "nodeType": "Block",
              "src": "20744:359:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5435,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 5421,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 5415,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 5410,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 5405,
                                "name": "_consumer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5396,
                                "src": "20778:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "id": 5408,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967268,
                                    "src": "20799:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                      "typeString": "contract WitPriceFeedsV3"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                      "typeString": "contract WitPriceFeedsV3"
                                    }
                                  ],
                                  "id": 5407,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "20791:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 5406,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "20791:7:19",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 5409,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20791:13:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "20778:26:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 5414,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 5411,
                                "name": "_consumer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5396,
                                "src": "20825:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 5412,
                                  "name": "base",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    4937
                                  ],
                                  "referencedDeclaration": 4937,
                                  "src": "20838:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                    "typeString": "function () view returns (address)"
                                  }
                                },
                                "id": 5413,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20838:6:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "20825:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "20778:66:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 5420,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "expression": {
                                  "id": 5416,
                                  "name": "_consumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5396,
                                  "src": "20865:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "id": 5417,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "20875:4:19",
                                "memberName": "code",
                                "nodeType": "MemberAccess",
                                "src": "20865:14:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 5418,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "20880:6:19",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "20865:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 5419,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20889:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "20865:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "20778:112:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "arguments": [
                                      {
                                        "id": 5425,
                                        "name": "_consumer",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5396,
                                        "src": "20964:9:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 5424,
                                      "name": "IWitPriceFeedsConsumer",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 27992,
                                      "src": "20941:22:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_IWitPriceFeedsConsumer_$27992_$",
                                        "typeString": "type(contract IWitPriceFeedsConsumer)"
                                      }
                                    },
                                    "id": 5426,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "20941:33:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IWitPriceFeedsConsumer_$27992",
                                      "typeString": "contract IWitPriceFeedsConsumer"
                                    }
                                  },
                                  "id": 5427,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "20975:13:19",
                                  "memberName": "witPriceFeeds",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 27991,
                                  "src": "20941:47:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitPriceFeeds_$27848_$",
                                    "typeString": "function () view external returns (contract IWitPriceFeeds)"
                                  }
                                },
                                "id": 5428,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20941:49:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                                  "typeString": "contract IWitPriceFeeds"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IWitPriceFeeds_$27848",
                                  "typeString": "contract IWitPriceFeeds"
                                }
                              ],
                              "id": 5423,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "20933:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5422,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "20933:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5429,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20933:58:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 5432,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967268,
                                "src": "21003:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                  "typeString": "contract WitPriceFeedsV3"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                  "typeString": "contract WitPriceFeedsV3"
                                }
                              ],
                              "id": 5431,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "20995:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5430,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "20995:7:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5433,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "20995:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "20933:75:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "20778:230:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420636f6e73756d6572",
                        "id": 5436,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "21023:18:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_30d375c2d3310d4f09ec0a62e559f9c93a07370306fdd51d6e054a68ee1c63ac",
                          "typeString": "literal_string \"invalid consumer\""
                        },
                        "value": "invalid consumer"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_30d375c2d3310d4f09ec0a62e559f9c93a07370306fdd51d6e054a68ee1c63ac",
                          "typeString": "literal_string \"invalid consumer\""
                        }
                      ],
                      "id": 5404,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "20755:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20755:297:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5438,
                  "nodeType": "ExpressionStatement",
                  "src": "20755:297:19"
                },
                {
                  "expression": {
                    "id": 5443,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5439,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "21063:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21063:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5441,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "21075:8:19",
                      "memberName": "consumer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22333,
                      "src": "21063:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5442,
                      "name": "_consumer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5396,
                      "src": "21086:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "21063:32:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5444,
                  "nodeType": "ExpressionStatement",
                  "src": "21063:32:19"
                }
              ]
            },
            "functionSelector": "79393a8b",
            "id": 5446,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5400,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5399,
                  "name": "onlyOnClones",
                  "nameLocations": [
                    "20707:12:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 45371,
                  "src": "20707:12:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "20707:12:19"
              },
              {
                "id": 5402,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5401,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "20729:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "20729:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "20729:9:19"
              }
            ],
            "name": "settleConsumer",
            "nameLocation": "20637:14:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5398,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20689:8:19"
            },
            "parameters": {
              "id": 5397,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5396,
                  "mutability": "mutable",
                  "name": "_consumer",
                  "nameLocation": "20660:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5446,
                  "src": "20652:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5395,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "20652:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20651:19:19"
            },
            "returnParameters": {
              "id": 5403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20744:0:19"
            },
            "scope": 6343,
            "src": "20628:475:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27887
            ],
            "body": {
              "id": 5468,
              "nodeType": "Block",
              "src": "21240:149:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 5457,
                            "name": "_conditions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5449,
                            "src": "21286:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          ],
                          "id": 5456,
                          "name": "_validateUpdateConditions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6197,
                          "src": "21260:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions memory) pure returns (bool)"
                          }
                        },
                        "id": 5458,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21260:38:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420636f6e646974696f6e73",
                        "id": 5459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "21300:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        },
                        "value": "invalid conditions"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        }
                      ],
                      "id": 5455,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "21251:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21251:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5461,
                  "nodeType": "ExpressionStatement",
                  "src": "21251:70:19"
                },
                {
                  "expression": {
                    "id": 5466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5462,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "21332:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5463,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21332:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5464,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "21344:23:19",
                      "memberName": "defaultUpdateConditions",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22331,
                      "src": "21332:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5465,
                      "name": "_conditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5449,
                      "src": "21370:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                      }
                    },
                    "src": "21332:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                    }
                  },
                  "id": 5467,
                  "nodeType": "ExpressionStatement",
                  "src": "21332:49:19"
                }
              ]
            },
            "functionSelector": "aba146ff",
            "id": 5469,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5453,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5452,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "21225:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "21225:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "21225:9:19"
              }
            ],
            "name": "settleDefaultUpdateConditions",
            "nameLocation": "21120:29:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5451,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21207:8:19"
            },
            "parameters": {
              "id": 5450,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5449,
                  "mutability": "mutable",
                  "name": "_conditions",
                  "nameLocation": "21176:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5469,
                  "src": "21150:37:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 5448,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5447,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "21150:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "21150:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "21150:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21149:39:19"
            },
            "returnParameters": {
              "id": 5454,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21240:0:19"
            },
            "scope": 6343,
            "src": "21111:278:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27902
            ],
            "body": {
              "id": 5533,
              "nodeType": "Block",
              "src": "21653:677:19",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 5513,
                        "nodeType": "Block",
                        "src": "21883:281:19",
                        "statements": [
                          {
                            "eventCall": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 5498,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "21938:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 5499,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "21942:6:19",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "21938:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 5502,
                                          "name": "_symbol",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5471,
                                          "src": "21981:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        ],
                                        "id": 5501,
                                        "name": "hash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4982,
                                        "src": "21976:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                          "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                                        }
                                      },
                                      "id": 5503,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "21976:13:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    ],
                                    "id": 5500,
                                    "name": "_intoID4",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6131,
                                    "src": "21967:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                      "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                                    }
                                  },
                                  "id": 5504,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "21967:23:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  }
                                },
                                {
                                  "id": 5505,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5471,
                                  "src": "22009:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                {
                                  "id": 5506,
                                  "name": "_exponent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5473,
                                  "src": "22035:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  }
                                },
                                {
                                  "id": 5507,
                                  "name": "_mapper",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5476,
                                  "src": "22063:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mappers_$28087",
                                    "typeString": "enum IWitPriceFeedsTypes.Mappers"
                                  }
                                },
                                {
                                  "id": 5508,
                                  "name": "_deps",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5479,
                                  "src": "22089:5:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  },
                                  {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  },
                                  {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  },
                                  {
                                    "typeIdentifier": "t_enum$_Mappers_$28087",
                                    "typeString": "enum IWitPriceFeedsTypes.Mappers"
                                  },
                                  {
                                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "string calldata[] calldata"
                                  }
                                ],
                                "id": 5497,
                                "name": "PriceFeedMapper",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28015,
                                "src": "21904:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$_t_int8_$_t_enum$_Mappers_$28087_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$",
                                  "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory,int8,enum IWitPriceFeedsTypes.Mappers,string memory[] memory)"
                                }
                              },
                              "id": 5509,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "21904:205:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5510,
                            "nodeType": "EmitStatement",
                            "src": "21899:210:19"
                          },
                          {
                            "expression": {
                              "id": 5511,
                              "name": "_footprint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5495,
                              "src": "22131:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "functionReturnParameters": 5486,
                            "id": 5512,
                            "nodeType": "Return",
                            "src": "22124:17:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5514,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5496,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5495,
                            "mutability": "mutable",
                            "name": "_footprint",
                            "nameLocation": "21871:10:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5514,
                            "src": "21864:17:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 5494,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "21864:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "21863:19:19"
                      },
                      "src": "21855:309:19"
                    },
                    {
                      "block": {
                        "id": 5522,
                        "nodeType": "Block",
                        "src": "22200:55:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 5519,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5516,
                                  "src": "22224:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 5518,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "22216:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 5520,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "22216:16:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5521,
                            "nodeType": "ExpressionStatement",
                            "src": "22216:16:19"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 5523,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5517,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5516,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "22191:7:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5523,
                            "src": "22177:21:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 5515,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "22177:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "22176:23:19"
                      },
                      "src": "22165:90:19"
                    },
                    {
                      "block": {
                        "id": 5530,
                        "nodeType": "Block",
                        "src": "22277:46:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 5527,
                                "name": "_revertUnhandled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6172,
                                "src": "22292:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 5528,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "22292:18:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5529,
                            "nodeType": "ExpressionStatement",
                            "src": "22292:18:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5531,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5526,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5525,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 5531,
                            "src": "22263:12:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 5524,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "22263:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "22262:14:19"
                      },
                      "src": "22256:67:19"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 5489,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5471,
                        "src": "21743:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5490,
                        "name": "_exponent",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5473,
                        "src": "21770:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "id": 5491,
                        "name": "_mapper",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5476,
                        "src": "21799:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mappers_$28087",
                          "typeString": "enum IWitPriceFeedsTypes.Mappers"
                        }
                      },
                      {
                        "id": 5492,
                        "name": "_deps",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5479,
                        "src": "21825:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_enum$_Mappers_$28087",
                          "typeString": "enum IWitPriceFeedsTypes.Mappers"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "expression": {
                        "id": 5487,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "21668:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5488,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "21703:21:19",
                      "memberName": "settlePriceFeedMapper",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23337,
                      "src": "21668:56:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_string_memory_ptr_$_t_int8_$_t_enum$_Mappers_$28087_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (string memory,int8,enum IWitPriceFeedsTypes.Mappers,string memory[] memory) returns (bytes4)"
                      }
                    },
                    "id": 5493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21668:177:19",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "id": 5532,
                  "nodeType": "TryStatement",
                  "src": "21664:659:19"
                }
              ]
            },
            "functionSelector": "60892193",
            "id": 5534,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5483,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5482,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "21612:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "21612:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "21612:9:19"
              }
            ],
            "name": "settlePriceFeedMapper",
            "nameLocation": "21406:21:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5481,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21594:8:19"
            },
            "parameters": {
              "id": 5480,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5471,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "21458:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5534,
                  "src": "21442:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5470,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "21442:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5473,
                  "mutability": "mutable",
                  "name": "_exponent",
                  "nameLocation": "21486:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5534,
                  "src": "21481:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 5472,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "21481:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5476,
                  "mutability": "mutable",
                  "name": "_mapper",
                  "nameLocation": "21518:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5534,
                  "src": "21510:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mappers_$28087",
                    "typeString": "enum IWitPriceFeedsTypes.Mappers"
                  },
                  "typeName": {
                    "id": 5475,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5474,
                      "name": "Mappers",
                      "nameLocations": [
                        "21510:7:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28087,
                      "src": "21510:7:19"
                    },
                    "referencedDeclaration": 28087,
                    "src": "21510:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mappers_$28087",
                      "typeString": "enum IWitPriceFeedsTypes.Mappers"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5479,
                  "mutability": "mutable",
                  "name": "_deps",
                  "nameLocation": "21558:5:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5534,
                  "src": "21540:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5477,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "21540:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5478,
                    "nodeType": "ArrayTypeName",
                    "src": "21540:8:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21427:147:19"
            },
            "returnParameters": {
              "id": 5486,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5485,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5534,
                  "src": "21640:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5484,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "21640:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21639:8:19"
            },
            "scope": 6343,
            "src": "21397:933:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27918
            ],
            "body": {
              "id": 5561,
              "nodeType": "Block",
              "src": "22630:110:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5554,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5536,
                        "src": "22672:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5555,
                        "name": "_exponent",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5538,
                        "src": "22681:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "id": 5556,
                        "name": "_oracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5541,
                        "src": "22692:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Oracles_$28092",
                          "typeString": "enum IWitPriceFeedsTypes.Oracles"
                        }
                      },
                      {
                        "id": 5557,
                        "name": "_oracleAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5543,
                        "src": "22701:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5558,
                        "name": "_oracleSources",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5545,
                        "src": "22717:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_enum$_Oracles_$28092",
                          "typeString": "enum IWitPriceFeedsTypes.Oracles"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5553,
                      "name": "__settlePriceFeedOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6277,
                      "src": "22648:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_int8_$_t_enum$_Oracles_$28092_$_t_address_$_t_bytes32_$returns$_t_bytes4_$",
                        "typeString": "function (string memory,int8,enum IWitPriceFeedsTypes.Oracles,address,bytes32) returns (bytes4)"
                      }
                    },
                    "id": 5559,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22648:84:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 5552,
                  "id": 5560,
                  "nodeType": "Return",
                  "src": "22641:91:19"
                }
              ]
            },
            "functionSelector": "e59a7808",
            "id": 5562,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5549,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5548,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "22589:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "22589:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "22589:9:19"
              }
            ],
            "name": "settlePriceFeedOracle",
            "nameLocation": "22347:21:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5547,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22571:8:19"
            },
            "parameters": {
              "id": 5546,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5536,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "22399:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22383:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5535,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "22383:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5538,
                  "mutability": "mutable",
                  "name": "_exponent",
                  "nameLocation": "22427:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22422:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 5537,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "22422:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5541,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "22459:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22451:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Oracles_$28092",
                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                  },
                  "typeName": {
                    "id": 5540,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5539,
                      "name": "Oracles",
                      "nameLocations": [
                        "22451:7:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28092,
                      "src": "22451:7:19"
                    },
                    "referencedDeclaration": 28092,
                    "src": "22451:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Oracles_$28092",
                      "typeString": "enum IWitPriceFeedsTypes.Oracles"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5543,
                  "mutability": "mutable",
                  "name": "_oracleAddress",
                  "nameLocation": "22489:14:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22481:22:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5542,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22481:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5545,
                  "mutability": "mutable",
                  "name": "_oracleSources",
                  "nameLocation": "22526:14:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22518:22:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5544,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22518:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22368:183:19"
            },
            "returnParameters": {
              "id": 5552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5551,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5562,
                  "src": "22617:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5550,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "22617:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22616:8:19"
            },
            "scope": 6343,
            "src": "22338:402:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27929
            ],
            "body": {
              "id": 5638,
              "nodeType": "Block",
              "src": "22987:812:19",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 5618,
                        "nodeType": "Block",
                        "src": "23285:348:19",
                        "statements": [
                          {
                            "eventCall": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 5594,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "23339:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 5595,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "23343:6:19",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "23339:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 5598,
                                          "name": "_symbol",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5564,
                                          "src": "23382:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        ],
                                        "id": 5597,
                                        "name": "hash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4982,
                                        "src": "23377:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                          "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                                        }
                                      },
                                      "id": 5599,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "23377:13:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    ],
                                    "id": 5596,
                                    "name": "_intoID4",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6131,
                                    "src": "23368:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                      "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                                    }
                                  },
                                  "id": 5600,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "23368:23:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  }
                                },
                                {
                                  "id": 5601,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5564,
                                  "src": "23410:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                {
                                  "id": 5602,
                                  "name": "_exponent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5566,
                                  "src": "23436:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  }
                                },
                                {
                                  "expression": {
                                    "id": 5603,
                                    "name": "Oracles",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28092,
                                    "src": "23464:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Oracles_$28092_$",
                                      "typeString": "type(enum IWitPriceFeedsTypes.Oracles)"
                                    }
                                  },
                                  "id": 5604,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "23472:6:19",
                                  "memberName": "Witnet",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 28088,
                                  "src": "23464:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 5607,
                                      "name": "this",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967268,
                                      "src": "23505:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                        "typeString": "contract WitPriceFeedsV3"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                        "typeString": "contract WitPriceFeedsV3"
                                      }
                                    ],
                                    "id": 5606,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "23497:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": {
                                      "id": 5605,
                                      "name": "address",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "23497:7:19",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 5608,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "23497:13:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 5612,
                                      "name": "_radonHash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5591,
                                      "src": "23553:10:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                        "typeString": "Witnet.RadonHash"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                        "typeString": "Witnet.RadonHash"
                                      }
                                    ],
                                    "expression": {
                                      "expression": {
                                        "id": 5609,
                                        "name": "Witnet",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 40741,
                                        "src": "23529:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                          "typeString": "type(library Witnet)"
                                        }
                                      },
                                      "id": 5610,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "23536:9:19",
                                      "memberName": "RadonHash",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 37153,
                                      "src": "23529:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                                        "typeString": "type(Witnet.RadonHash)"
                                      }
                                    },
                                    "id": 5611,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "23546:6:19",
                                    "memberName": "unwrap",
                                    "nodeType": "MemberAccess",
                                    "src": "23529:23:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                                      "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 5613,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "23529:35:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  },
                                  {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  },
                                  {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  },
                                  {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 5593,
                                "name": "PriceFeedOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28034,
                                "src": "23305:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$_t_int8_$_t_enum$_Oracles_$28092_$_t_address_$_t_bytes32_$returns$__$",
                                  "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory,int8,enum IWitPriceFeedsTypes.Oracles,address,bytes32)"
                                }
                              },
                              "id": 5614,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "23305:274:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5615,
                            "nodeType": "EmitStatement",
                            "src": "23300:279:19"
                          },
                          {
                            "expression": {
                              "id": 5616,
                              "name": "_footprint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5588,
                              "src": "23601:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "functionReturnParameters": 5575,
                            "id": 5617,
                            "nodeType": "Return",
                            "src": "23594:17:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5619,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5592,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5588,
                            "mutability": "mutable",
                            "name": "_footprint",
                            "nameLocation": "23244:10:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5619,
                            "src": "23237:17:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 5587,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "23237:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 5591,
                            "mutability": "mutable",
                            "name": "_radonHash",
                            "nameLocation": "23273:10:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5619,
                            "src": "23256:27:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                              "typeString": "Witnet.RadonHash"
                            },
                            "typeName": {
                              "id": 5590,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 5589,
                                "name": "Witnet.RadonHash",
                                "nameLocations": [
                                  "23256:6:19",
                                  "23263:9:19"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 37153,
                                "src": "23256:16:19"
                              },
                              "referencedDeclaration": 37153,
                              "src": "23256:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                "typeString": "Witnet.RadonHash"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "23236:48:19"
                      },
                      "src": "23228:405:19"
                    },
                    {
                      "block": {
                        "id": 5627,
                        "nodeType": "Block",
                        "src": "23669:55:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 5624,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5621,
                                  "src": "23693:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 5623,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "23685:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 5625,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "23685:16:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5626,
                            "nodeType": "ExpressionStatement",
                            "src": "23685:16:19"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 5628,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5622,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5621,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "23660:7:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5628,
                            "src": "23646:21:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 5620,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "23646:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "23645:23:19"
                      },
                      "src": "23634:90:19"
                    },
                    {
                      "block": {
                        "id": 5635,
                        "nodeType": "Block",
                        "src": "23746:46:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 5632,
                                "name": "_revertUnhandled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6172,
                                "src": "23761:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 5633,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "23761:18:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5634,
                            "nodeType": "ExpressionStatement",
                            "src": "23761:18:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5636,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5631,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5630,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 5636,
                            "src": "23732:12:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 5629,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "23732:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "23731:14:19"
                      },
                      "src": "23725:67:19"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 5578,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5564,
                        "src": "23084:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5579,
                        "name": "_radonBytecode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5568,
                        "src": "23110:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "id": 5580,
                        "name": "_exponent",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5566,
                        "src": "23143:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "arguments": [
                              {
                                "id": 5582,
                                "name": "witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4426,
                                "src": "23182:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 5581,
                              "name": "IWitOracle",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26581,
                              "src": "23171:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                "typeString": "type(contract IWitOracle)"
                              }
                            },
                            "id": 5583,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23171:21:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IWitOracle_$26581",
                              "typeString": "contract IWitOracle"
                            }
                          },
                          "id": 5584,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "23193:8:19",
                          "memberName": "registry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 26580,
                          "src": "23171:30:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                            "typeString": "function () view external returns (contract IWitOracleRadonRegistry)"
                          }
                        },
                        "id": 5585,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23171:32:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      ],
                      "expression": {
                        "id": 5576,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "23002:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "23037:28:19",
                      "memberName": "settlePriceFeedRadonBytecode",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23507,
                      "src": "23002:63:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_int8_$_t_contract$_IWitOracleRadonRegistry_$27394_$returns$_t_bytes4_$_t_userDefinedValueType$_RadonHash_$37153_$",
                        "typeString": "function (string memory,bytes memory,int8,contract IWitOracleRadonRegistry) returns (bytes4,Witnet.RadonHash)"
                      }
                    },
                    "id": 5586,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23002:216:19",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes4_$_t_userDefinedValueType$_RadonHash_$37153_$",
                      "typeString": "tuple(bytes4,Witnet.RadonHash)"
                    }
                  },
                  "id": 5637,
                  "nodeType": "TryStatement",
                  "src": "22998:794:19"
                }
              ]
            },
            "functionSelector": "67e559ac",
            "id": 5639,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5572,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5571,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "22946:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "22946:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "22946:9:19"
              }
            ],
            "name": "settlePriceFeedRadonBytecode",
            "nameLocation": "22757:28:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5570,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22927:8:19"
            },
            "parameters": {
              "id": 5569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5564,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "22816:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "22800:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5563,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "22800:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5566,
                  "mutability": "mutable",
                  "name": "_exponent",
                  "nameLocation": "22844:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "22839:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 5565,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "22839:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5568,
                  "mutability": "mutable",
                  "name": "_radonBytecode",
                  "nameLocation": "22883:14:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "22868:29:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5567,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22868:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22785:123:19"
            },
            "returnParameters": {
              "id": 5575,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5574,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "22974:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5573,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "22974:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22973:8:19"
            },
            "scope": 6343,
            "src": "22748:1051:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27941
            ],
            "body": {
              "id": 5713,
              "nodeType": "Block",
              "src": "24040:774:19",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 5693,
                        "nodeType": "Block",
                        "src": "24301:338:19",
                        "statements": [
                          {
                            "eventCall": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 5669,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "24355:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 5670,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "24359:6:19",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "24355:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 5673,
                                          "name": "_symbol",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5641,
                                          "src": "24398:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_calldata_ptr",
                                            "typeString": "string calldata"
                                          }
                                        ],
                                        "id": 5672,
                                        "name": "hash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4982,
                                        "src": "24393:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                          "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                                        }
                                      },
                                      "id": 5674,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24393:13:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    ],
                                    "id": 5671,
                                    "name": "_intoID4",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6131,
                                    "src": "24384:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                      "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                                    }
                                  },
                                  "id": 5675,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "24384:23:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  }
                                },
                                {
                                  "id": 5676,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5641,
                                  "src": "24426:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                {
                                  "id": 5677,
                                  "name": "_exponent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5643,
                                  "src": "24452:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  }
                                },
                                {
                                  "expression": {
                                    "id": 5678,
                                    "name": "Oracles",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 28092,
                                    "src": "24480:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Oracles_$28092_$",
                                      "typeString": "type(enum IWitPriceFeedsTypes.Oracles)"
                                    }
                                  },
                                  "id": 5679,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberLocation": "24488:6:19",
                                  "memberName": "Witnet",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 28088,
                                  "src": "24480:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 5682,
                                      "name": "this",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967268,
                                      "src": "24521:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                        "typeString": "contract WitPriceFeedsV3"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                        "typeString": "contract WitPriceFeedsV3"
                                      }
                                    ],
                                    "id": 5681,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "24513:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": {
                                      "id": 5680,
                                      "name": "address",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "24513:7:19",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 5683,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "24513:13:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 5687,
                                      "name": "_radonHash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5646,
                                      "src": "24569:10:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                        "typeString": "Witnet.RadonHash"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                                        "typeString": "Witnet.RadonHash"
                                      }
                                    ],
                                    "expression": {
                                      "expression": {
                                        "id": 5684,
                                        "name": "Witnet",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 40741,
                                        "src": "24545:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                          "typeString": "type(library Witnet)"
                                        }
                                      },
                                      "id": 5685,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "24552:9:19",
                                      "memberName": "RadonHash",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 37153,
                                      "src": "24545:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_userDefinedValueType$_RadonHash_$37153_$",
                                        "typeString": "type(Witnet.RadonHash)"
                                      }
                                    },
                                    "id": 5686,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "24562:6:19",
                                    "memberName": "unwrap",
                                    "nodeType": "MemberAccess",
                                    "src": "24545:23:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_RadonHash_$37153_$returns$_t_bytes32_$",
                                      "typeString": "function (Witnet.RadonHash) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 5688,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "24545:35:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  },
                                  {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  },
                                  {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  },
                                  {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 5668,
                                "name": "PriceFeedOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28034,
                                "src": "24321:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$_t_int8_$_t_enum$_Oracles_$28092_$_t_address_$_t_bytes32_$returns$__$",
                                  "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory,int8,enum IWitPriceFeedsTypes.Oracles,address,bytes32)"
                                }
                              },
                              "id": 5689,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24321:274:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5690,
                            "nodeType": "EmitStatement",
                            "src": "24316:279:19"
                          },
                          {
                            "expression": {
                              "id": 5691,
                              "name": "_footprint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5666,
                              "src": "24617:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "functionReturnParameters": 5653,
                            "id": 5692,
                            "nodeType": "Return",
                            "src": "24610:17:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5694,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5667,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5666,
                            "mutability": "mutable",
                            "name": "_footprint",
                            "nameLocation": "24289:10:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5694,
                            "src": "24282:17:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 5665,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "24282:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "24281:19:19"
                      },
                      "src": "24273:366:19"
                    },
                    {
                      "block": {
                        "id": 5702,
                        "nodeType": "Block",
                        "src": "24684:55:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 5699,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5696,
                                  "src": "24708:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 5698,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "24700:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 5700,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24700:16:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5701,
                            "nodeType": "ExpressionStatement",
                            "src": "24700:16:19"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 5703,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5697,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5696,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "24675:7:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 5703,
                            "src": "24661:21:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 5695,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "24661:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "24660:23:19"
                      },
                      "src": "24649:90:19"
                    },
                    {
                      "block": {
                        "id": 5710,
                        "nodeType": "Block",
                        "src": "24761:46:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 5707,
                                "name": "_revertUnhandled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6172,
                                "src": "24776:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 5708,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24776:18:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 5709,
                            "nodeType": "ExpressionStatement",
                            "src": "24776:18:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 5711,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 5706,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 5705,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 5711,
                            "src": "24747:12:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 5704,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "24747:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "24746:14:19"
                      },
                      "src": "24740:67:19"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 5656,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5641,
                        "src": "24133:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5657,
                        "name": "_radonHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5646,
                        "src": "24159:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        }
                      },
                      {
                        "id": 5658,
                        "name": "_exponent",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5643,
                        "src": "24188:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "arguments": [
                              {
                                "id": 5660,
                                "name": "witOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4426,
                                "src": "24227:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 5659,
                              "name": "IWitOracle",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 26581,
                              "src": "24216:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                                "typeString": "type(contract IWitOracle)"
                              }
                            },
                            "id": 5661,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24216:21:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IWitOracle_$26581",
                              "typeString": "contract IWitOracle"
                            }
                          },
                          "id": 5662,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "24238:8:19",
                          "memberName": "registry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 26580,
                          "src": "24216:30:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWitOracleRadonRegistry_$27394_$",
                            "typeString": "function () view external returns (contract IWitOracleRadonRegistry)"
                          }
                        },
                        "id": 5663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24216:32:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                          "typeString": "Witnet.RadonHash"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_contract$_IWitOracleRadonRegistry_$27394",
                          "typeString": "contract IWitOracleRadonRegistry"
                        }
                      ],
                      "expression": {
                        "id": 5654,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "24055:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 5655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "24090:24:19",
                      "memberName": "settlePriceFeedRadonHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23581,
                      "src": "24055:59:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_string_memory_ptr_$_t_userDefinedValueType$_RadonHash_$37153_$_t_int8_$_t_contract$_IWitOracleRadonRegistry_$27394_$returns$_t_bytes4_$",
                        "typeString": "function (string memory,Witnet.RadonHash,int8,contract IWitOracleRadonRegistry) returns (bytes4)"
                      }
                    },
                    "id": 5664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24055:208:19",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "id": 5712,
                  "nodeType": "TryStatement",
                  "src": "24051:756:19"
                }
              ]
            },
            "functionSelector": "c70f2f73",
            "id": 5714,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5650,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5649,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "23999:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "23999:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "23999:9:19"
              }
            ],
            "name": "settlePriceFeedRadonHash",
            "nameLocation": "23816:24:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5648,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "23980:8:19"
            },
            "parameters": {
              "id": 5647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5641,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "23871:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5714,
                  "src": "23855:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5640,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "23855:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5643,
                  "mutability": "mutable",
                  "name": "_exponent",
                  "nameLocation": "23899:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5714,
                  "src": "23894:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 5642,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "23894:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5646,
                  "mutability": "mutable",
                  "name": "_radonHash",
                  "nameLocation": "23940:10:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5714,
                  "src": "23923:27:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                    "typeString": "Witnet.RadonHash"
                  },
                  "typeName": {
                    "id": 5645,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5644,
                      "name": "Witnet.RadonHash",
                      "nameLocations": [
                        "23923:6:19",
                        "23930:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37153,
                      "src": "23923:16:19"
                    },
                    "referencedDeclaration": 37153,
                    "src": "23923:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                      "typeString": "Witnet.RadonHash"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23840:121:19"
            },
            "returnParameters": {
              "id": 5653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5652,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5714,
                  "src": "24027:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5651,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "24027:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24026:8:19"
            },
            "scope": 6343,
            "src": "23807:1007:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              27949
            ],
            "body": {
              "id": 5737,
              "nodeType": "Block",
              "src": "25016:155:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 5727,
                            "name": "_conditions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5719,
                            "src": "25062:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                            }
                          ],
                          "id": 5726,
                          "name": "_validateUpdateConditions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6197,
                          "src": "25036:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions memory) pure returns (bool)"
                          }
                        },
                        "id": 5728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25036:38:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "696e76616c696420636f6e646974696f6e73",
                        "id": 5729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "25076:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        },
                        "value": "invalid conditions"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_92652eb4bbacba88b9776cb4d74f1971bf048ec4209e530f36eaebd7ae233fb3",
                          "typeString": "literal_string \"invalid conditions\""
                        }
                      ],
                      "id": 5725,
                      "name": "_require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26494,
                      "src": "25027:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) view"
                      }
                    },
                    "id": 5730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25027:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5731,
                  "nodeType": "ExpressionStatement",
                  "src": "25027:70:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5733,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5716,
                        "src": "25142:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5734,
                        "name": "_conditions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5719,
                        "src": "25151:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions calldata"
                        }
                      ],
                      "id": 5732,
                      "name": "__settlePriceFeedUpdateConditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6331,
                      "src": "25108:33:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,struct IWitPriceFeedsTypes.UpdateConditions memory)"
                      }
                    },
                    "id": 5735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25108:55:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5736,
                  "nodeType": "ExpressionStatement",
                  "src": "25108:55:19"
                }
              ]
            },
            "functionSelector": "fa78a971",
            "id": 5738,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5723,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5722,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "25001:9:19"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 326,
                  "src": "25001:9:19"
                },
                "nodeType": "ModifierInvocation",
                "src": "25001:9:19"
              }
            ],
            "name": "settlePriceFeedUpdateConditions",
            "nameLocation": "24831:31:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5721,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "24983:8:19"
            },
            "parameters": {
              "id": 5720,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5716,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "24893:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5738,
                  "src": "24877:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5715,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "24877:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5719,
                  "mutability": "mutable",
                  "name": "_conditions",
                  "nameLocation": "24942:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 5738,
                  "src": "24916:37:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_calldata_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 5718,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5717,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "24916:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "24916:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "24916:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "24862:102:19"
            },
            "returnParameters": {
              "id": 5724,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "25016:0:19"
            },
            "scope": 6343,
            "src": "24822:349:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              26605
            ],
            "body": {
              "id": 6029,
              "nodeType": "Block",
              "src": "25595:3011:19",
              "statements": [
                {
                  "assignments": [
                    5750
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5750,
                      "mutability": "mutable",
                      "name": "_id4",
                      "nameLocation": "25610:4:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "25606:8:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                        "typeString": "IWitPriceFeedsTypes.ID4"
                      },
                      "typeName": {
                        "id": 5749,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5748,
                          "name": "ID4",
                          "nameLocations": [
                            "25606:3:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28155,
                          "src": "25606:3:19"
                        },
                        "referencedDeclaration": 28155,
                        "src": "25606:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5757,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5751,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "25617:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5752,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25617:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5753,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "25629:10:19",
                      "memberName": "reverseIds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22328,
                      "src": "25617:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_userDefinedValueType$_RadonHash_$37153_$_t_userDefinedValueType$_ID4_$28155_$",
                        "typeString": "mapping(Witnet.RadonHash => IWitPriceFeedsTypes.ID4)"
                      }
                    },
                    "id": 5756,
                    "indexExpression": {
                      "expression": {
                        "id": 5754,
                        "name": "report",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5742,
                        "src": "25640:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      "id": 5755,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "25647:12:19",
                      "memberName": "queryRadHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37265,
                      "src": "25640:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_RadonHash_$37153",
                        "typeString": "Witnet.RadonHash"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "25617:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25606:54:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "25693:14:19",
                        "subExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 5759,
                              "name": "_id4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5750,
                              "src": "25694:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              }
                            },
                            "id": 5760,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "25699:6:19",
                            "memberName": "isZero",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24582,
                            "src": "25694:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID4_$28155_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_ID4_$28155_$",
                              "typeString": "function (IWitPriceFeedsTypes.ID4) pure returns (bool)"
                            }
                          },
                          "id": 5761,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "25694:13:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5763,
                          "name": "InvalidUpdateDataSource",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29681,
                          "src": "25723:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25723:25:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5758,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "25671:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25671:88:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5766,
                  "nodeType": "ExpressionStatement",
                  "src": "25671:88:19"
                },
                {
                  "assignments": [
                    5771
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5771,
                      "mutability": "mutable",
                      "name": "__record",
                      "nameLocation": "25809:8:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "25770:47:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                      },
                      "typeName": {
                        "id": 5770,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5769,
                          "name": "WitPriceFeedsDataLib.PriceFeed",
                          "nameLocations": [
                            "25770:20:19",
                            "25791:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22395,
                          "src": "25770:30:19"
                        },
                        "referencedDeclaration": 22395,
                        "src": "25770:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5775,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5773,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5750,
                        "src": "25836:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "id": 5772,
                      "name": "__seekPriceFeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6212,
                      "src": "25820:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 5774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25820:21:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25770:71:19"
                },
                {
                  "assignments": [
                    5778
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5778,
                      "mutability": "mutable",
                      "name": "_updateConditions",
                      "nameLocation": "25876:17:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "25852:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                      },
                      "typeName": {
                        "id": 5777,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5776,
                          "name": "UpdateConditions",
                          "nameLocations": [
                            "25852:16:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28153,
                          "src": "25852:16:19"
                        },
                        "referencedDeclaration": 28153,
                        "src": "25852:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5783,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 5779,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5771,
                          "src": "25896:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5780,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "25905:16:19",
                        "memberName": "updateConditions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22390,
                        "src": "25896:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                        }
                      },
                      "id": 5781,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "25922:8:19",
                      "memberName": "coalesce",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23752,
                      "src": "25896:34:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_UpdateConditions_$28153_storage_ptr_$returns$_t_struct$_UpdateConditions_$28153_memory_ptr_$attached_to$_t_struct$_UpdateConditions_$28153_storage_ptr_$",
                        "typeString": "function (struct IWitPriceFeedsTypes.UpdateConditions storage pointer) view returns (struct IWitPriceFeedsTypes.UpdateConditions memory)"
                      }
                    },
                    "id": 5782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25896:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25852:80:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "id": 5790,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 5785,
                              "name": "report",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5742,
                              "src": "25965:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                                "typeString": "struct Witnet.DataPushReport calldata"
                              }
                            },
                            "id": 5786,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "25972:11:19",
                            "memberName": "queryParams",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37268,
                            "src": "25965:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_QuerySLA_$37373_calldata_ptr",
                              "typeString": "struct Witnet.QuerySLA calldata"
                            }
                          },
                          "id": 5787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "25984:16:19",
                          "memberName": "witCommitteeSize",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 37370,
                          "src": "25965:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "expression": {
                            "id": 5788,
                            "name": "_updateConditions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5778,
                            "src": "26004:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                              "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                            }
                          },
                          "id": 5789,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "26022:12:19",
                          "memberName": "minWitnesses",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 28152,
                          "src": "26004:30:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "25965:69:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5791,
                          "name": "InvalidGovernanceTarget",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29678,
                          "src": "26049:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5792,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26049:25:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5784,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "25943:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5793,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25943:142:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5794,
                  "nodeType": "ExpressionStatement",
                  "src": "25943:142:19"
                },
                {
                  "assignments": [
                    5799
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5799,
                      "mutability": "mutable",
                      "name": "_dataResult",
                      "nameLocation": "26121:11:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "26096:36:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                        "typeString": "struct Witnet.DataResult"
                      },
                      "typeName": {
                        "id": 5798,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5797,
                          "name": "Witnet.DataResult",
                          "nameLocations": [
                            "26096:6:19",
                            "26103:10:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 37293,
                          "src": "26096:17:19"
                        },
                        "referencedDeclaration": 37293,
                        "src": "26096:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_storage_ptr",
                          "typeString": "struct Witnet.DataResult"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5807,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5804,
                        "name": "report",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5742,
                        "src": "26186:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        }
                      },
                      {
                        "id": 5805,
                        "name": "proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5744,
                        "src": "26207:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                          "typeString": "struct Witnet.DataPushReport calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 5801,
                            "name": "witOracle",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4426,
                            "src": "26146:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 5800,
                          "name": "IWitOracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26581,
                          "src": "26135:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWitOracle_$26581_$",
                            "typeString": "type(contract IWitOracle)"
                          }
                        },
                        "id": 5802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26135:21:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWitOracle_$26581",
                          "typeString": "contract IWitOracle"
                        }
                      },
                      "id": 5803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "26157:14:19",
                      "memberName": "pushDataReport",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 26573,
                      "src": "26135:36:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_struct$_DataPushReport_$37274_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataPushReport memory,bytes memory) external returns (struct Witnet.DataResult memory)"
                      }
                    },
                    "id": 5806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26135:88:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                      "typeString": "struct Witnet.DataResult memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26096:127:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_ResultStatus_$37698",
                            "typeString": "enum Witnet.ResultStatus"
                          },
                          "id": 5814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 5809,
                              "name": "_dataResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5799,
                              "src": "26256:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 5810,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26268:6:19",
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37278,
                            "src": "26256:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 5811,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "26278:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 5812,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26285:12:19",
                              "memberName": "ResultStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37698,
                              "src": "26278:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ResultStatus_$37698_$",
                                "typeString": "type(enum Witnet.ResultStatus)"
                              }
                            },
                            "id": 5813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26298:8:19",
                            "memberName": "NoErrors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37375,
                            "src": "26278:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ResultStatus_$37698",
                              "typeString": "enum Witnet.ResultStatus"
                            }
                          },
                          "src": "26256:50:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                            "typeString": "enum Witnet.RadonDataTypes"
                          },
                          "id": 5820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 5815,
                              "name": "_dataResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5799,
                              "src": "26327:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 5816,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26339:8:19",
                            "memberName": "dataType",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37281,
                            "src": "26327:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                              "typeString": "enum Witnet.RadonDataTypes"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 5817,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "26351:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 5818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26358:14:19",
                              "memberName": "RadonDataTypes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37720,
                              "src": "26351:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_RadonDataTypes_$37720_$",
                                "typeString": "type(enum Witnet.RadonDataTypes)"
                              }
                            },
                            "id": 5819,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26373:7:19",
                            "memberName": "Integer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37704,
                            "src": "26351:29:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_RadonDataTypes_$37720",
                              "typeString": "enum Witnet.RadonDataTypes"
                            }
                          },
                          "src": "26327:53:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "26256:124:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5822,
                          "name": "InvalidUpdateData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29684,
                          "src": "26395:17:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5823,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26395:19:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5808,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "26234:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26234:191:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5825,
                  "nodeType": "ExpressionStatement",
                  "src": "26234:191:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "expression": {
                                "id": 5830,
                                "name": "__record",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5771,
                                "src": "26483:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                                  "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                                }
                              },
                              "id": 5831,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26492:10:19",
                              "memberName": "lastUpdate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22394,
                              "src": "26483:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                                "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                              }
                            },
                            "id": 5832,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26503:9:19",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22352,
                            "src": "26483:29:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          ],
                          "expression": {
                            "expression": {
                              "id": 5827,
                              "name": "_dataResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5799,
                              "src": "26458:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                "typeString": "struct Witnet.DataResult memory"
                              }
                            },
                            "id": 5828,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26470:9:19",
                            "memberName": "timestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 37289,
                            "src": "26458:21:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                              "typeString": "Witnet.Timestamp"
                            }
                          },
                          "id": 5829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "26480:2:19",
                          "memberName": "gt",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 39037,
                          "src": "26458:24:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Timestamp_$37157_$",
                            "typeString": "function (Witnet.Timestamp,Witnet.Timestamp) pure returns (bool)"
                          }
                        },
                        "id": 5833,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26458:55:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5834,
                          "name": "NoFreshUpdate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29687,
                          "src": "26528:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5835,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26528:15:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5826,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "26436:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26436:118:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5837,
                  "nodeType": "ExpressionStatement",
                  "src": "26436:118:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5855,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 5842,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "26611:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 5843,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26623:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37289,
                              "src": "26611:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 5839,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "26587:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 5840,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26594:9:19",
                              "memberName": "Timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37157,
                              "src": "26587:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                "typeString": "type(Witnet.Timestamp)"
                              }
                            },
                            "id": 5841,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26604:6:19",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "26587:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                            }
                          },
                          "id": 5844,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26587:46:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 5854,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "expression": {
                                  "expression": {
                                    "id": 5848,
                                    "name": "__record",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5771,
                                    "src": "26678:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                                    }
                                  },
                                  "id": 5849,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "26687:10:19",
                                  "memberName": "lastUpdate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22394,
                                  "src": "26678:19:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                                    "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                                  }
                                },
                                "id": 5850,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "26698:9:19",
                                "memberName": "timestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22352,
                                "src": "26678:29:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                  "typeString": "Witnet.Timestamp"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                  "typeString": "Witnet.Timestamp"
                                }
                              ],
                              "expression": {
                                "expression": {
                                  "id": 5845,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40741,
                                  "src": "26654:6:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 5846,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "26661:9:19",
                                "memberName": "Timestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37157,
                                "src": "26654:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                  "typeString": "type(Witnet.Timestamp)"
                                }
                              },
                              "id": 5847,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "26671:6:19",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "26654:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                                "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                              }
                            },
                            "id": 5851,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "26654:54:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "expression": {
                              "id": 5852,
                              "name": "_updateConditions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5778,
                              "src": "26711:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                              }
                            },
                            "id": 5853,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "26729:12:19",
                            "memberName": "cooldownSecs",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28146,
                            "src": "26711:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            }
                          },
                          "src": "26654:87:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "src": "26587:154:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5856,
                          "name": "HotPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29672,
                          "src": "26756:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "26756:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5838,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "26565:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26565:212:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5859,
                  "nodeType": "ExpressionStatement",
                  "src": "26565:212:19"
                },
                {
                  "assignments": [
                    5861
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5861,
                      "mutability": "mutable",
                      "name": "_exponent",
                      "nameLocation": "26803:9:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "26798:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int8",
                        "typeString": "int8"
                      },
                      "typeName": {
                        "id": 5860,
                        "name": "int8",
                        "nodeType": "ElementaryTypeName",
                        "src": "26798:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5865,
                  "initialValue": {
                    "expression": {
                      "expression": {
                        "id": 5862,
                        "name": "__record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5771,
                        "src": "26815:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                        }
                      },
                      "id": 5863,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "26824:10:19",
                      "memberName": "lastUpdate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22394,
                      "src": "26815:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                        "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                      }
                    },
                    "id": 5864,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "26835:8:19",
                    "memberName": "exponent",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22348,
                    "src": "26815:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26798:45:19"
                },
                {
                  "assignments": [
                    5867
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5867,
                      "mutability": "mutable",
                      "name": "_deltaSecs",
                      "nameLocation": "26861:10:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "26854:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 5866,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "26854:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5885,
                  "initialValue": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        "id": 5883,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "expression": {
                                "expression": {
                                  "id": 5873,
                                  "name": "__record",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5771,
                                  "src": "26919:8:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                                    "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                                  }
                                },
                                "id": 5874,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "26928:10:19",
                                "memberName": "lastUpdate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22394,
                                "src": "26919:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                                  "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                                }
                              },
                              "id": 5875,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26939:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22352,
                              "src": "26919:29:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 5870,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "26895:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 5871,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26902:9:19",
                              "memberName": "Timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37157,
                              "src": "26895:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                "typeString": "type(Witnet.Timestamp)"
                              }
                            },
                            "id": 5872,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26912:6:19",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "26895:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                            }
                          },
                          "id": 5876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26895:54:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 5880,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "26993:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 5881,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "27005:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37289,
                              "src": "26993:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 5877,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 40741,
                                "src": "26969:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 5878,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "26976:9:19",
                              "memberName": "Timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37157,
                              "src": "26969:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                "typeString": "type(Witnet.Timestamp)"
                              }
                            },
                            "id": 5879,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "26986:6:19",
                            "memberName": "unwrap",
                            "nodeType": "MemberAccess",
                            "src": "26969:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                              "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                            }
                          },
                          "id": 5882,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26969:46:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "src": "26895:120:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 5869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "26874:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint24_$",
                        "typeString": "type(uint24)"
                      },
                      "typeName": {
                        "id": 5868,
                        "name": "uint24",
                        "nodeType": "ElementaryTypeName",
                        "src": "26874:6:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 5884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "26874:152:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26854:172:19"
                },
                {
                  "assignments": [
                    5887
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5887,
                      "mutability": "mutable",
                      "name": "_lastPrice",
                      "nameLocation": "27044:10:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "27037:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 5886,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "27037:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5891,
                  "initialValue": {
                    "expression": {
                      "expression": {
                        "id": 5888,
                        "name": "__record",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5771,
                        "src": "27057:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                        }
                      },
                      "id": 5889,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27066:10:19",
                      "memberName": "lastUpdate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22394,
                      "src": "27057:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                        "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                      }
                    },
                    "id": 5890,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "27077:5:19",
                    "memberName": "price",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22342,
                    "src": "27057:25:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27037:45:19"
                },
                {
                  "assignments": [
                    5893
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5893,
                      "mutability": "mutable",
                      "name": "_nextPrice",
                      "nameLocation": "27100:10:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "27093:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 5892,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "27093:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5897,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 5894,
                        "name": "_dataResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5799,
                        "src": "27113:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                          "typeString": "struct Witnet.DataResult memory"
                        }
                      },
                      "id": 5895,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27125:9:19",
                      "memberName": "fetchUint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38525,
                      "src": "27113:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_DataResult_$37293_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_DataResult_$37293_memory_ptr_$",
                        "typeString": "function (struct Witnet.DataResult memory) pure returns (uint64)"
                      }
                    },
                    "id": 5896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27113:23:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27093:43:19"
                },
                {
                  "assignments": [
                    5899
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5899,
                      "mutability": "mutable",
                      "name": "_deltaPrice",
                      "nameLocation": "27153:11:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "27147:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int56",
                        "typeString": "int56"
                      },
                      "typeName": {
                        "id": 5898,
                        "name": "int56",
                        "nodeType": "ElementaryTypeName",
                        "src": "27147:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int56",
                          "typeString": "int56"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5912,
                  "initialValue": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        },
                        "id": 5910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 5904,
                              "name": "_nextPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5893,
                              "src": "27179:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 5903,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "27173:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int64_$",
                              "typeString": "type(int64)"
                            },
                            "typeName": {
                              "id": 5902,
                              "name": "int64",
                              "nodeType": "ElementaryTypeName",
                              "src": "27173:5:19",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 5905,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27173:17:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int64",
                            "typeString": "int64"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 5908,
                              "name": "_lastPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5887,
                              "src": "27199:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            ],
                            "id": 5907,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "27193:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int64_$",
                              "typeString": "type(int64)"
                            },
                            "typeName": {
                              "id": 5906,
                              "name": "int64",
                              "nodeType": "ElementaryTypeName",
                              "src": "27193:5:19",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 5909,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27193:17:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int64",
                            "typeString": "int64"
                          }
                        },
                        "src": "27173:37:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        }
                      ],
                      "id": 5901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "27167:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int56_$",
                        "typeString": "type(int56)"
                      },
                      "typeName": {
                        "id": 5900,
                        "name": "int56",
                        "nodeType": "ElementaryTypeName",
                        "src": "27167:5:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 5911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27167:44:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int56",
                      "typeString": "int56"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27147:64:19"
                },
                {
                  "assignments": [
                    5914
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5914,
                      "mutability": "mutable",
                      "name": "_deviation1000",
                      "nameLocation": "27229:14:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6029,
                      "src": "27222:21:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      },
                      "typeName": {
                        "id": 5913,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "27222:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5937,
                  "initialValue": {
                    "components": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int56",
                            "typeString": "int56"
                          },
                          "id": 5917,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 5915,
                            "name": "_deltaPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5899,
                            "src": "27261:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int56",
                              "typeString": "int56"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 5916,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "27276:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "27261:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 5934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                },
                                "id": 5931,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 5929,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "27363:12:19",
                                  "subExpression": {
                                    "id": 5928,
                                    "name": "_deltaPrice",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5899,
                                    "src": "27364:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int56",
                                      "typeString": "int56"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int56",
                                    "typeString": "int56"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "hexValue": "31303030",
                                  "id": 5930,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "27378:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1000_by_1",
                                    "typeString": "int_const 1000"
                                  },
                                  "value": "1000"
                                },
                                "src": "27363:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                }
                              ],
                              "id": 5927,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "27356:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint56_$",
                                "typeString": "type(uint56)"
                              },
                              "typeName": {
                                "id": 5926,
                                "name": "uint56",
                                "nodeType": "ElementaryTypeName",
                                "src": "27356:6:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5932,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27356:27:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint56",
                              "typeString": "uint56"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "id": 5933,
                            "name": "_lastPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5887,
                            "src": "27386:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "27356:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 5935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "27261:135:19",
                        "trueExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 5925,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                },
                                "id": 5922,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 5920,
                                  "name": "_deltaPrice",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5899,
                                  "src": "27304:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int56",
                                    "typeString": "int56"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "hexValue": "31303030",
                                  "id": 5921,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "27318:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1000_by_1",
                                    "typeString": "int_const 1000"
                                  },
                                  "value": "1000"
                                },
                                "src": "27304:18:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int56",
                                  "typeString": "int56"
                                }
                              ],
                              "id": 5919,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "27297:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint56_$",
                                "typeString": "type(uint56)"
                              },
                              "typeName": {
                                "id": 5918,
                                "name": "uint56",
                                "nodeType": "ElementaryTypeName",
                                "src": "27297:6:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 5923,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27297:26:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint56",
                              "typeString": "uint56"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "id": 5924,
                            "name": "_lastPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5887,
                            "src": "27326:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "src": "27297:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "id": 5936,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "27246:161:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27222:185:19"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5947,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 5942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 5939,
                              "name": "_updateConditions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5778,
                              "src": "27450:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                              }
                            },
                            "id": 5940,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27468:16:19",
                            "memberName": "maxDeviation1000",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28150,
                            "src": "27450:34:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 5941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "27488:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "27450:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          },
                          "id": 5946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 5943,
                            "name": "_deviation1000",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5914,
                            "src": "27493:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "expression": {
                              "id": 5944,
                              "name": "_updateConditions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5778,
                              "src": "27511:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                              }
                            },
                            "id": 5945,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "27529:16:19",
                            "memberName": "maxDeviation1000",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28150,
                            "src": "27511:34:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "src": "27493:52:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "27450:95:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5948,
                          "name": "DeviantPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 29669,
                          "src": "27560:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$",
                            "typeString": "function () pure returns (error)"
                          }
                        },
                        "id": 5949,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "27560:14:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_error",
                          "typeString": "error"
                        }
                      ],
                      "id": 5938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "27428:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$",
                        "typeString": "function (bool,error) pure"
                      }
                    },
                    "id": 5950,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "27428:157:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5951,
                  "nodeType": "ExpressionStatement",
                  "src": "27428:157:19"
                },
                {
                  "expression": {
                    "id": 5958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 5952,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5771,
                          "src": "27598:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5955,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27607:10:19",
                        "memberName": "lastUpdate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22394,
                        "src": "27598:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                          "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                        }
                      },
                      "id": 5956,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "27618:10:19",
                      "memberName": "deltaPrice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22345,
                      "src": "27598:30:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int56",
                        "typeString": "int56"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5957,
                      "name": "_deltaPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5899,
                      "src": "27631:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int56",
                        "typeString": "int56"
                      }
                    },
                    "src": "27598:44:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int56",
                      "typeString": "int56"
                    }
                  },
                  "id": 5959,
                  "nodeType": "ExpressionStatement",
                  "src": "27598:44:19"
                },
                {
                  "expression": {
                    "id": 5966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 5960,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5771,
                          "src": "27653:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27662:10:19",
                        "memberName": "lastUpdate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22394,
                        "src": "27653:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                          "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                        }
                      },
                      "id": 5964,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "27673:5:19",
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22342,
                      "src": "27653:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5965,
                      "name": "_nextPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5893,
                      "src": "27681:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "27653:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 5967,
                  "nodeType": "ExpressionStatement",
                  "src": "27653:38:19"
                },
                {
                  "expression": {
                    "id": 5975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 5968,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5771,
                          "src": "27702:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5971,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27711:10:19",
                        "memberName": "lastUpdate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22394,
                        "src": "27702:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                          "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                        }
                      },
                      "id": 5972,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "27722:9:19",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22352,
                      "src": "27702:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                        "typeString": "Witnet.Timestamp"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 5973,
                        "name": "_dataResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5799,
                        "src": "27734:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                          "typeString": "struct Witnet.DataResult memory"
                        }
                      },
                      "id": 5974,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27746:9:19",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37289,
                      "src": "27734:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                        "typeString": "Witnet.Timestamp"
                      }
                    },
                    "src": "27702:53:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                      "typeString": "Witnet.Timestamp"
                    }
                  },
                  "id": 5976,
                  "nodeType": "ExpressionStatement",
                  "src": "27702:53:19"
                },
                {
                  "expression": {
                    "id": 5984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "expression": {
                          "id": 5977,
                          "name": "__record",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5771,
                          "src": "27766:8:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                            "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                          }
                        },
                        "id": 5980,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "27775:10:19",
                        "memberName": "lastUpdate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 22394,
                        "src": "27766:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                          "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                        }
                      },
                      "id": 5981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "27786:5:19",
                      "memberName": "trail",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22356,
                      "src": "27766:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                        "typeString": "Witnet.TransactionHash"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "expression": {
                        "id": 5982,
                        "name": "_dataResult",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5799,
                        "src": "27794:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                          "typeString": "struct Witnet.DataResult memory"
                        }
                      },
                      "id": 5983,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "27806:8:19",
                      "memberName": "drTxHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 37284,
                      "src": "27794:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                        "typeString": "Witnet.TransactionHash"
                      }
                    },
                    "src": "27766:48:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                      "typeString": "Witnet.TransactionHash"
                    }
                  },
                  "id": 5985,
                  "nodeType": "ExpressionStatement",
                  "src": "27766:48:19"
                },
                {
                  "condition": {
                    "expression": {
                      "id": 5986,
                      "name": "_updateConditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5778,
                      "src": "27831:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                      }
                    },
                    "id": 5987,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "27849:10:19",
                    "memberName": "computeEma",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 28144,
                    "src": "27831:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5989,
                  "nodeType": "IfStatement",
                  "src": "27827:138:19",
                  "trueBody": {
                    "id": 5988,
                    "nodeType": "Block",
                    "src": "27861:104:19",
                    "statements": []
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 5997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5990,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "27989:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 5991,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "27989:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 5992,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "28001:8:19",
                      "memberName": "consumer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22333,
                      "src": "27989:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 5995,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "28021:1:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 5994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "28013:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 5993,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "28013:7:19",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 5996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "28013:10:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "27989:34:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6027,
                    "nodeType": "Block",
                    "src": "28282:317:19",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6016,
                              "name": "_id4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5750,
                              "src": "28373:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              }
                            },
                            {
                              "expression": {
                                "id": 6017,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "28396:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 6018,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "28408:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37289,
                              "src": "28396:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            },
                            {
                              "expression": {
                                "id": 6019,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "28436:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 6020,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "28448:8:19",
                              "memberName": "drTxHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37284,
                              "src": "28436:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                "typeString": "Witnet.TransactionHash"
                              }
                            },
                            {
                              "id": 6021,
                              "name": "_nextPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5893,
                              "src": "28475:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            {
                              "id": 6022,
                              "name": "_deltaPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5899,
                              "src": "28504:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int56",
                                "typeString": "int56"
                              }
                            },
                            {
                              "id": 6023,
                              "name": "_deltaSecs",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5867,
                              "src": "28534:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            {
                              "id": 6024,
                              "name": "_exponent",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5861,
                              "src": "28563:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              },
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              },
                              {
                                "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                "typeString": "Witnet.TransactionHash"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              {
                                "typeIdentifier": "t_int56",
                                "typeString": "int56"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            ],
                            "expression": {
                              "arguments": [
                                {
                                  "expression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 6011,
                                      "name": "__storage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6342,
                                      "src": "28320:9:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                                        "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                                      }
                                    },
                                    "id": 6012,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "28320:11:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                                      "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                                    }
                                  },
                                  "id": 6013,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "28332:8:19",
                                  "memberName": "consumer",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 22333,
                                  "src": "28320:20:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 6010,
                                "name": "IWitPriceFeedsConsumer",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 27992,
                                "src": "28297:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IWitPriceFeedsConsumer_$27992_$",
                                  "typeString": "type(contract IWitPriceFeedsConsumer)"
                                }
                              },
                              "id": 6014,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "28297:44:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IWitPriceFeedsConsumer_$27992",
                                "typeString": "contract IWitPriceFeedsConsumer"
                              }
                            },
                            "id": 6015,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "28342:12:19",
                            "memberName": "reportUpdate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 27984,
                            "src": "28297:57:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_userDefinedValueType$_ID4_$28155_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_uint64_$_t_int56_$_t_uint64_$_t_int8_$returns$__$",
                              "typeString": "function (IWitPriceFeedsTypes.ID4,Witnet.Timestamp,Witnet.TransactionHash,uint64,int56,uint64,int8) external"
                            }
                          },
                          "id": 6025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28297:290:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6026,
                        "nodeType": "ExpressionStatement",
                        "src": "28297:290:19"
                      }
                    ]
                  },
                  "id": 6028,
                  "nodeType": "IfStatement",
                  "src": "27985:614:19",
                  "trueBody": {
                    "id": 6009,
                    "nodeType": "Block",
                    "src": "28025:251:19",
                    "statements": [
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "id": 5999,
                              "name": "_id4",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5750,
                              "src": "28079:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              }
                            },
                            {
                              "expression": {
                                "id": 6000,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "28102:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 6001,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "28114:9:19",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37289,
                              "src": "28102:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              }
                            },
                            {
                              "expression": {
                                "id": 6002,
                                "name": "_dataResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5799,
                                "src": "28142:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DataResult_$37293_memory_ptr",
                                  "typeString": "struct Witnet.DataResult memory"
                                }
                              },
                              "id": 6003,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "28154:8:19",
                              "memberName": "drTxHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37284,
                              "src": "28142:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                "typeString": "Witnet.TransactionHash"
                              }
                            },
                            {
                              "id": 6004,
                              "name": "_nextPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5893,
                              "src": "28181:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              }
                            },
                            {
                              "id": 6005,
                              "name": "_deltaPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5899,
                              "src": "28210:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int56",
                                "typeString": "int56"
                              }
                            },
                            {
                              "id": 6006,
                              "name": "_exponent",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5861,
                              "src": "28240:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                "typeString": "IWitPriceFeedsTypes.ID4"
                              },
                              {
                                "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                "typeString": "Witnet.Timestamp"
                              },
                              {
                                "typeIdentifier": "t_userDefinedValueType$_TransactionHash_$37159",
                                "typeString": "Witnet.TransactionHash"
                              },
                              {
                                "typeIdentifier": "t_uint64",
                                "typeString": "uint64"
                              },
                              {
                                "typeIdentifier": "t_int56",
                                "typeString": "int56"
                              },
                              {
                                "typeIdentifier": "t_int8",
                                "typeString": "int8"
                              }
                            ],
                            "id": 5998,
                            "name": "PriceFeedUpdate",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              29710,
                              28061
                            ],
                            "referencedDeclaration": 28061,
                            "src": "28045:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_userDefinedValueType$_ID4_$28155_$_t_userDefinedValueType$_Timestamp_$37157_$_t_userDefinedValueType$_TransactionHash_$37159_$_t_uint64_$_t_int56_$_t_int8_$returns$__$",
                              "typeString": "function (IWitPriceFeedsTypes.ID4,Witnet.Timestamp,Witnet.TransactionHash,uint64,int56,int8)"
                            }
                          },
                          "id": 6007,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "28045:219:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6008,
                        "nodeType": "EmitStatement",
                        "src": "28040:224:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 5739,
              "nodeType": "StructuredDocumentation",
              "src": "25181:238:19",
              "text": "===============================================================================================================\n --- IWitOracleConsumer ----------------------------------------------------------------------------------------"
            },
            "functionSelector": "6d0d6a7e",
            "id": 6030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pushDataReport",
            "nameLocation": "25434:14:19",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5746,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "25565:8:19"
            },
            "parameters": {
              "id": 5745,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5742,
                  "mutability": "mutable",
                  "name": "report",
                  "nameLocation": "25494:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6030,
                  "src": "25463:37:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DataPushReport_$37274_calldata_ptr",
                    "typeString": "struct Witnet.DataPushReport"
                  },
                  "typeName": {
                    "id": 5741,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5740,
                      "name": "Witnet.DataPushReport",
                      "nameLocations": [
                        "25463:6:19",
                        "25470:14:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 37274,
                      "src": "25463:21:19"
                    },
                    "referencedDeclaration": 37274,
                    "src": "25463:21:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DataPushReport_$37274_storage_ptr",
                      "typeString": "struct Witnet.DataPushReport"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5744,
                  "mutability": "mutable",
                  "name": "proof",
                  "nameLocation": "25531:5:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6030,
                  "src": "25516:20:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5743,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "25516:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "25448:99:19"
            },
            "returnParameters": {
              "id": 5747,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "25595:0:19"
            },
            "scope": 6343,
            "src": "25425:3181:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6045,
              "nodeType": "Block",
              "src": "28994:97:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6041,
                        "name": "initcode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6032,
                        "src": "29043:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "id": 6042,
                        "name": "params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6034,
                        "src": "29066:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 6039,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967295,
                        "src": "29012:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 6040,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "29016:12:19",
                      "memberName": "encodePacked",
                      "nodeType": "MemberAccess",
                      "src": "29012:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 6043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29012:71:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 6038,
                  "id": 6044,
                  "nodeType": "Return",
                  "src": "29005:78:19"
                }
              ]
            },
            "id": 6046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_completeInitCode",
            "nameLocation": "28873:17:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6032,
                  "mutability": "mutable",
                  "name": "initcode",
                  "nameLocation": "28904:8:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6046,
                  "src": "28891:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6031,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "28891:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6034,
                  "mutability": "mutable",
                  "name": "params",
                  "nameLocation": "28927:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6046,
                  "src": "28914:19:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6033,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "28914:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28890:44:19"
            },
            "returnParameters": {
              "id": 6038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6037,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6046,
                  "src": "28975:12:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6036,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "28975:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "28974:14:19"
            },
            "scope": 6343,
            "src": "28864:227:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 6088,
              "nodeType": "Block",
              "src": "29231:325:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30786666",
                                            "id": 6066,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "29358:4:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            },
                                            "value": "0xff"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            }
                                          ],
                                          "id": 6065,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "29351:6:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes1_$",
                                            "typeString": "type(bytes1)"
                                          },
                                          "typeName": {
                                            "id": 6064,
                                            "name": "bytes1",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "29351:6:19",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6067,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29351:12:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "id": 6070,
                                            "name": "this",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4294967268,
                                            "src": "29394:4:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                              "typeString": "contract WitPriceFeedsV3"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_WitPriceFeedsV3_$6343",
                                              "typeString": "contract WitPriceFeedsV3"
                                            }
                                          ],
                                          "id": 6069,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "29386:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": {
                                            "id": 6068,
                                            "name": "address",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "29386:7:19",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6071,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29386:13:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 6074,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "29430:1:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 6073,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "29422:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 6072,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "29422:7:19",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 6075,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29422:10:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "id": 6078,
                                                "name": "initcode",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6048,
                                                "src": "29483:8:19",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              },
                                              {
                                                "id": 6079,
                                                "name": "params",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6050,
                                                "src": "29493:6:19",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                },
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              ],
                                              "id": 6077,
                                              "name": "_completeInitCode",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6046,
                                              "src": "29465:17:19",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)"
                                              }
                                            },
                                            "id": 6080,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "29465:35:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 6076,
                                          "name": "keccak256",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4294967288,
                                          "src": "29455:9:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes memory) pure returns (bytes32)"
                                          }
                                        },
                                        "id": 6081,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29455:46:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes1",
                                          "typeString": "bytes1"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "expression": {
                                        "id": 6062,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4294967295,
                                        "src": "29312:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 6063,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "29316:12:19",
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "src": "29312:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 6082,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "29312:208:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 6061,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967288,
                                  "src": "29284:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 6083,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29284:251:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 6060,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "29279:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 6059,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "29279:4:19",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 6084,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29279:257:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 6058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "29271:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": {
                            "id": 6057,
                            "name": "uint160",
                            "nodeType": "ElementaryTypeName",
                            "src": "29271:7:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29271:266:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 6056,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "29249:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 6055,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "29249:7:19",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 6086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29249:299:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6054,
                  "id": 6087,
                  "nodeType": "Return",
                  "src": "29242:306:19"
                }
              ]
            },
            "id": 6089,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_determineCreate2Address",
            "nameLocation": "29108:24:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6048,
                  "mutability": "mutable",
                  "name": "initcode",
                  "nameLocation": "29146:8:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6089,
                  "src": "29133:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6047,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "29133:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6050,
                  "mutability": "mutable",
                  "name": "params",
                  "nameLocation": "29169:6:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6089,
                  "src": "29156:19:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6049,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "29156:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29132:44:19"
            },
            "returnParameters": {
              "id": 6054,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6053,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6089,
                  "src": "29217:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6052,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "29217:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29216:9:19"
            },
            "scope": 6343,
            "src": "29099:457:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 6109,
              "nodeType": "Block",
              "src": "29617:73:19",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6098,
                          "name": "__storage",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6342,
                          "src": "29635:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                            "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                          }
                        },
                        "id": 6099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29635:11:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                        }
                      },
                      "id": 6100,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29647:3:19",
                      "memberName": "ids",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22309,
                      "src": "29635:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_userDefinedValueType$_ID_$29561_$dyn_storage",
                        "typeString": "IWitPyth.ID[] storage ref"
                      }
                    },
                    "id": 6107,
                    "indexExpression": {
                      "expression": {
                        "baseExpression": {
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 6101,
                              "name": "__storage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6342,
                              "src": "29651:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                                "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                              }
                            },
                            "id": 6102,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29651:11:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                              "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                            }
                          },
                          "id": 6103,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "29663:7:19",
                          "memberName": "records",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22315,
                          "src": "29651:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_userDefinedValueType$_ID4_$28155_$_t_struct$_PriceFeed_$22395_storage_$",
                            "typeString": "mapping(IWitPriceFeedsTypes.ID4 => struct WitPriceFeedsDataLib.PriceFeed storage ref)"
                          }
                        },
                        "id": 6105,
                        "indexExpression": {
                          "id": 6104,
                          "name": "id4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6092,
                          "src": "29671:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                            "typeString": "IWitPriceFeedsTypes.ID4"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "29651:24:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage ref"
                        }
                      },
                      "id": 6106,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "29676:5:19",
                      "memberName": "index",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22363,
                      "src": "29651:30:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "29635:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "functionReturnParameters": 6097,
                  "id": 6108,
                  "nodeType": "Return",
                  "src": "29628:54:19"
                }
              ]
            },
            "id": 6110,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_intoID",
            "nameLocation": "29573:7:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6092,
                  "mutability": "mutable",
                  "name": "id4",
                  "nameLocation": "29585:3:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6110,
                  "src": "29581:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 6091,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6090,
                      "name": "ID4",
                      "nameLocations": [
                        "29581:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "29581:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "29581:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29580:9:19"
            },
            "returnParameters": {
              "id": 6097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6096,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6110,
                  "src": "29613:2:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 6095,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6094,
                      "name": "ID",
                      "nameLocations": [
                        "29613:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "29613:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "29613:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29612:4:19"
            },
            "scope": 6343,
            "src": "29564:126:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6130,
              "nodeType": "Block",
              "src": "29751:57:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 6125,
                                "name": "id",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6113,
                                "src": "29795:2:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                  "typeString": "IWitPyth.ID"
                                }
                              ],
                              "expression": {
                                "id": 6123,
                                "name": "ID",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 29561,
                                "src": "29785:2:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_ID_$29561_$",
                                  "typeString": "type(IWitPyth.ID)"
                                }
                              },
                              "id": 6124,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "29788:6:19",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "29785:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_bytes32_$",
                                "typeString": "function (IWitPyth.ID) pure returns (bytes32)"
                              }
                            },
                            "id": 6126,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "29785:13:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 6122,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "29778:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes4_$",
                            "typeString": "type(bytes4)"
                          },
                          "typeName": {
                            "id": 6121,
                            "name": "bytes4",
                            "nodeType": "ElementaryTypeName",
                            "src": "29778:6:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6127,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29778:21:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "id": 6119,
                        "name": "ID4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28155,
                        "src": "29769:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_userDefinedValueType$_ID4_$28155_$",
                          "typeString": "type(IWitPriceFeedsTypes.ID4)"
                        }
                      },
                      "id": 6120,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "29773:4:19",
                      "memberName": "wrap",
                      "nodeType": "MemberAccess",
                      "src": "29769:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_wrap_pure$_t_bytes4_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                        "typeString": "function (bytes4) pure returns (IWitPriceFeedsTypes.ID4)"
                      }
                    },
                    "id": 6128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "29769:31:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "functionReturnParameters": 6118,
                  "id": 6129,
                  "nodeType": "Return",
                  "src": "29762:38:19"
                }
              ]
            },
            "id": 6131,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_intoID4",
            "nameLocation": "29707:8:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6113,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "29719:2:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "29716:5:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                    "typeString": "IWitPyth.ID"
                  },
                  "typeName": {
                    "id": 6112,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6111,
                      "name": "ID",
                      "nameLocations": [
                        "29716:2:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29561,
                      "src": "29716:2:19"
                    },
                    "referencedDeclaration": 29561,
                    "src": "29716:2:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                      "typeString": "IWitPyth.ID"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29715:7:19"
            },
            "returnParameters": {
              "id": 6118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6117,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "29746:3:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 6116,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6115,
                      "name": "ID4",
                      "nameLocations": [
                        "29746:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "29746:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "29746:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29745:5:19"
            },
            "scope": 6343,
            "src": "29698:110:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6163,
              "nodeType": "Block",
              "src": "29905:238:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 6143,
                              "name": "_witPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6134,
                              "src": "29961:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 6144,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "29971:5:19",
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28096,
                            "src": "29961:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "id": 6142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "29955:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int64_$",
                            "typeString": "type(int64)"
                          },
                          "typeName": {
                            "id": 6141,
                            "name": "int64",
                            "nodeType": "ElementaryTypeName",
                            "src": "29955:5:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "29955:22:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        }
                      },
                      {
                        "hexValue": "30",
                        "id": 6146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "29998:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 6149,
                              "name": "_witPrice",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6134,
                              "src": "30026:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.Price memory"
                              }
                            },
                            "id": 6150,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "30036:8:19",
                            "memberName": "exponent",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28094,
                            "src": "30026:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int8",
                              "typeString": "int8"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int8",
                              "typeString": "int8"
                            }
                          ],
                          "id": 6148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "30020:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int32_$",
                            "typeString": "type(int32)"
                          },
                          "typeName": {
                            "id": 6147,
                            "name": "int32",
                            "nodeType": "ElementaryTypeName",
                            "src": "30020:5:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30020:25:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 6157,
                                  "name": "_witPrice",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6134,
                                  "src": "30102:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                                    "typeString": "struct IWitPriceFeedsTypes.Price memory"
                                  }
                                },
                                "id": 6158,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "30112:9:19",
                                "memberName": "timestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 28101,
                                "src": "30102:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                  "typeString": "Witnet.Timestamp"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_userDefinedValueType$_Timestamp_$37157",
                                  "typeString": "Witnet.Timestamp"
                                }
                              ],
                              "expression": {
                                "expression": {
                                  "id": 6154,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 40741,
                                  "src": "30078:6:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$40741_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 6155,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "30085:9:19",
                                "memberName": "Timestamp",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 37157,
                                "src": "30078:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_userDefinedValueType$_Timestamp_$37157_$",
                                  "typeString": "type(Witnet.Timestamp)"
                                }
                              },
                              "id": 6156,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "30095:6:19",
                              "memberName": "unwrap",
                              "nodeType": "MemberAccess",
                              "src": "30078:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Timestamp_$37157_$returns$_t_uint64_$",
                                "typeString": "function (Witnet.Timestamp) pure returns (uint64)"
                              }
                            },
                            "id": 6159,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "30078:44:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          ],
                          "id": 6153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "30073:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 6152,
                            "name": "uint",
                            "nodeType": "ElementaryTypeName",
                            "src": "30073:4:19",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "30073:50:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int64",
                          "typeString": "int64"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6140,
                      "name": "PythPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 29570,
                      "src": "29923:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_PythPrice_$29570_storage_ptr_$",
                        "typeString": "type(struct IWitPyth.PythPrice storage pointer)"
                      }
                    },
                    "id": 6161,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "29948:5:19",
                      "29992:4:19",
                      "30014:4:19",
                      "30060:11:19"
                    ],
                    "names": [
                      "price",
                      "conf",
                      "expo",
                      "publishTime"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "29923:212:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                      "typeString": "struct IWitPyth.PythPrice memory"
                    }
                  },
                  "functionReturnParameters": 6139,
                  "id": 6162,
                  "nodeType": "Return",
                  "src": "29916:219:19"
                }
              ]
            },
            "id": 6164,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_intoPythPrice",
            "nameLocation": "29825:14:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6134,
                  "mutability": "mutable",
                  "name": "_witPrice",
                  "nameLocation": "29853:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6164,
                  "src": "29840:22:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Price_$28105_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.Price"
                  },
                  "typeName": {
                    "id": 6133,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6132,
                      "name": "Price",
                      "nameLocations": [
                        "29840:5:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28105,
                      "src": "29840:5:19"
                    },
                    "referencedDeclaration": 28105,
                    "src": "29840:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Price_$28105_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.Price"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29839:24:19"
            },
            "returnParameters": {
              "id": 6139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6138,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6164,
                  "src": "29887:16:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PythPrice_$29570_memory_ptr",
                    "typeString": "struct IWitPyth.PythPrice"
                  },
                  "typeName": {
                    "id": 6137,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6136,
                      "name": "PythPrice",
                      "nameLocations": [
                        "29887:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 29570,
                      "src": "29887:9:19"
                    },
                    "referencedDeclaration": 29570,
                    "src": "29887:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PythPrice_$29570_storage_ptr",
                      "typeString": "struct IWitPyth.PythPrice"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "29886:18:19"
            },
            "scope": 6343,
            "src": "29816:327:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6171,
              "nodeType": "Block",
              "src": "30193:46:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "756e68616e646c656420726576657274",
                        "id": 6168,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "30212:18:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a40dca7f3ed445ceb68fc0fe8b9207d326751bd12f8ce73da7f4a8c0c3861f11",
                          "typeString": "literal_string \"unhandled revert\""
                        },
                        "value": "unhandled revert"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_a40dca7f3ed445ceb68fc0fe8b9207d326751bd12f8ce73da7f4a8c0c3861f11",
                          "typeString": "literal_string \"unhandled revert\""
                        }
                      ],
                      "id": 6167,
                      "name": "_revert",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26513,
                      "src": "30204:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) view"
                      }
                    },
                    "id": 6169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30204:27:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6170,
                  "nodeType": "ExpressionStatement",
                  "src": "30204:27:19"
                }
              ]
            },
            "id": 6172,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_revertUnhandled",
            "nameLocation": "30160:16:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6165,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30176:2:19"
            },
            "returnParameters": {
              "id": 6166,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30193:0:19"
            },
            "scope": 6343,
            "src": "30151:88:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6196,
              "nodeType": "Block",
              "src": "30371:178:19",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6193,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6188,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            },
                            "id": 6183,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 6180,
                                "name": "_conditions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6175,
                                "src": "30404:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                  "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                                }
                              },
                              "id": 6181,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "30416:11:19",
                              "memberName": "callbackGas",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 28142,
                              "src": "30404:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 6182,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30430:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "30404:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint24",
                              "typeString": "uint24"
                            },
                            "id": 6187,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 6184,
                                "name": "_conditions",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6175,
                                "src": "30452:11:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                  "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                                }
                              },
                              "id": 6185,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "30464:13:19",
                              "memberName": "heartbeatSecs",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 28148,
                              "src": "30452:25:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint24",
                                "typeString": "uint24"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 6186,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "30480:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "30452:29:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "30404:77:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          },
                          "id": 6192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6189,
                              "name": "_conditions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6175,
                              "src": "30502:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                                "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                              }
                            },
                            "id": 6190,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "30514:12:19",
                            "memberName": "minWitnesses",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28152,
                            "src": "30502:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 6191,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "30529:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "30502:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "30404:126:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 6194,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "30389:152:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6179,
                  "id": 6195,
                  "nodeType": "Return",
                  "src": "30382:159:19"
                }
              ]
            },
            "id": 6197,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_validateUpdateConditions",
            "nameLocation": "30256:25:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6175,
                  "mutability": "mutable",
                  "name": "_conditions",
                  "nameLocation": "30306:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6197,
                  "src": "30282:35:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 6174,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6173,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "30282:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "30282:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "30282:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30281:37:19"
            },
            "returnParameters": {
              "id": 6179,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6178,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6197,
                  "src": "30360:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6177,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "30360:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30359:6:19"
            },
            "scope": 6343,
            "src": "30247:302:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6211,
              "nodeType": "Block",
              "src": "30655:66:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6208,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6200,
                        "src": "30708:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "expression": {
                        "id": 6206,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "30673:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 6207,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "30694:13:19",
                      "memberName": "seekPriceFeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24598,
                      "src": "30673:34:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 6209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30673:40:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "functionReturnParameters": 6205,
                  "id": 6210,
                  "nodeType": "Return",
                  "src": "30666:47:19"
                }
              ]
            },
            "id": 6212,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__seekPriceFeed",
            "nameLocation": "30566:15:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6201,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6200,
                  "mutability": "mutable",
                  "name": "_id4",
                  "nameLocation": "30586:4:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "30582:8:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                    "typeString": "IWitPriceFeedsTypes.ID4"
                  },
                  "typeName": {
                    "id": 6199,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6198,
                      "name": "ID4",
                      "nameLocations": [
                        "30582:3:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28155,
                      "src": "30582:3:19"
                    },
                    "referencedDeclaration": 28155,
                    "src": "30582:3:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30581:10:19"
            },
            "returnParameters": {
              "id": 6205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6204,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "30615:38:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                    "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                  },
                  "typeName": {
                    "id": 6203,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6202,
                      "name": "WitPriceFeedsDataLib.PriceFeed",
                      "nameLocations": [
                        "30615:20:19",
                        "30636:9:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22395,
                      "src": "30615:30:19"
                    },
                    "referencedDeclaration": 22395,
                    "src": "30615:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30614:40:19"
            },
            "scope": 6343,
            "src": "30557:164:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6276,
              "nodeType": "Block",
              "src": "31001:761:19",
              "statements": [
                {
                  "clauses": [
                    {
                      "block": {
                        "id": 6256,
                        "nodeType": "Block",
                        "src": "31273:323:19",
                        "statements": [
                          {
                            "eventCall": {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 6240,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967281,
                                    "src": "31328:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 6241,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "31332:6:19",
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "src": "31328:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 6244,
                                          "name": "_symbol",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6214,
                                          "src": "31371:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "id": 6243,
                                        "name": "hash",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4982,
                                        "src": "31366:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                                          "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                                        }
                                      },
                                      "id": 6245,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "31366:13:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                                        "typeString": "IWitPyth.ID"
                                      }
                                    ],
                                    "id": 6242,
                                    "name": "_intoID4",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6131,
                                    "src": "31357:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                                      "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                                    }
                                  },
                                  "id": 6246,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "31357:23:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  }
                                },
                                {
                                  "id": 6247,
                                  "name": "_symbol",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6214,
                                  "src": "31399:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                {
                                  "id": 6248,
                                  "name": "_exponent",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6216,
                                  "src": "31425:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  }
                                },
                                {
                                  "id": 6249,
                                  "name": "_oracle",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6219,
                                  "src": "31453:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  }
                                },
                                {
                                  "id": 6250,
                                  "name": "_oracleAddress",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6221,
                                  "src": "31479:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "id": 6251,
                                  "name": "_oracleSources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6223,
                                  "src": "31512:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                                    "typeString": "IWitPriceFeedsTypes.ID4"
                                  },
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  },
                                  {
                                    "typeIdentifier": "t_int8",
                                    "typeString": "int8"
                                  },
                                  {
                                    "typeIdentifier": "t_enum$_Oracles_$28092",
                                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                                  },
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 6239,
                                "name": "PriceFeedOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 28034,
                                "src": "31294:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$_t_int8_$_t_enum$_Oracles_$28092_$_t_address_$_t_bytes32_$returns$__$",
                                  "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory,int8,enum IWitPriceFeedsTypes.Oracles,address,bytes32)"
                                }
                              },
                              "id": 6252,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "31294:247:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 6253,
                            "nodeType": "EmitStatement",
                            "src": "31289:252:19"
                          },
                          {
                            "expression": {
                              "id": 6254,
                              "name": "_footprint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6237,
                              "src": "31563:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "functionReturnParameters": 6227,
                            "id": 6255,
                            "nodeType": "Return",
                            "src": "31556:17:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 6257,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 6238,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 6237,
                            "mutability": "mutable",
                            "name": "_footprint",
                            "nameLocation": "31261:10:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 6257,
                            "src": "31254:17:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            },
                            "typeName": {
                              "id": 6236,
                              "name": "bytes4",
                              "nodeType": "ElementaryTypeName",
                              "src": "31254:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "31253:19:19"
                      },
                      "src": "31245:351:19"
                    },
                    {
                      "block": {
                        "id": 6265,
                        "nodeType": "Block",
                        "src": "31632:55:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "id": 6262,
                                  "name": "_reason",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6259,
                                  "src": "31656:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 6261,
                                "name": "_revert",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 26513,
                                "src": "31648:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$__$",
                                  "typeString": "function (string memory) view"
                                }
                              },
                              "id": 6263,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "31648:16:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 6264,
                            "nodeType": "ExpressionStatement",
                            "src": "31648:16:19"
                          }
                        ]
                      },
                      "errorName": "Error",
                      "id": 6266,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 6260,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 6259,
                            "mutability": "mutable",
                            "name": "_reason",
                            "nameLocation": "31623:7:19",
                            "nodeType": "VariableDeclaration",
                            "scope": 6266,
                            "src": "31609:21:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 6258,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "31609:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "31608:23:19"
                      },
                      "src": "31597:90:19"
                    },
                    {
                      "block": {
                        "id": 6273,
                        "nodeType": "Block",
                        "src": "31709:46:19",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "id": 6270,
                                "name": "_revertUnhandled",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6172,
                                "src": "31724:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$__$returns$__$",
                                  "typeString": "function () view"
                                }
                              },
                              "id": 6271,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "31724:18:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 6272,
                            "nodeType": "ExpressionStatement",
                            "src": "31724:18:19"
                          }
                        ]
                      },
                      "errorName": "",
                      "id": 6274,
                      "nodeType": "TryCatchClause",
                      "parameters": {
                        "id": 6269,
                        "nodeType": "ParameterList",
                        "parameters": [
                          {
                            "constant": false,
                            "id": 6268,
                            "mutability": "mutable",
                            "name": "",
                            "nameLocation": "-1:-1:-1",
                            "nodeType": "VariableDeclaration",
                            "scope": 6274,
                            "src": "31695:12:19",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 6267,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "31695:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "src": "31694:14:19"
                      },
                      "src": "31688:67:19"
                    }
                  ],
                  "externalCall": {
                    "arguments": [
                      {
                        "id": 6230,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6214,
                        "src": "31091:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 6231,
                        "name": "_exponent",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6216,
                        "src": "31118:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        }
                      },
                      {
                        "id": 6232,
                        "name": "_oracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6219,
                        "src": "31147:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Oracles_$28092",
                          "typeString": "enum IWitPriceFeedsTypes.Oracles"
                        }
                      },
                      {
                        "id": 6233,
                        "name": "_oracleAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6221,
                        "src": "31173:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6234,
                        "name": "_oracleSources",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6223,
                        "src": "31206:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_int8",
                          "typeString": "int8"
                        },
                        {
                          "typeIdentifier": "t_enum$_Oracles_$28092",
                          "typeString": "enum IWitPriceFeedsTypes.Oracles"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 6228,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "31016:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 6229,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "31051:21:19",
                      "memberName": "settlePriceFeedOracle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23430,
                      "src": "31016:56:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_string_memory_ptr_$_t_int8_$_t_enum$_Oracles_$28092_$_t_address_$_t_bytes32_$returns$_t_bytes4_$",
                        "typeString": "function (string memory,int8,enum IWitPriceFeedsTypes.Oracles,address,bytes32) returns (bytes4)"
                      }
                    },
                    "id": 6235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31016:219:19",
                    "tryCall": true,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "id": 6275,
                  "nodeType": "TryStatement",
                  "src": "31012:743:19"
                }
              ]
            },
            "id": 6277,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__settlePriceFeedOracle",
            "nameLocation": "30738:23:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6224,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6214,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "30790:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30776:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6213,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "30776:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6216,
                  "mutability": "mutable",
                  "name": "_exponent",
                  "nameLocation": "30818:9:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30813:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int8",
                    "typeString": "int8"
                  },
                  "typeName": {
                    "id": 6215,
                    "name": "int8",
                    "nodeType": "ElementaryTypeName",
                    "src": "30813:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int8",
                      "typeString": "int8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6219,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "30850:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30842:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Oracles_$28092",
                    "typeString": "enum IWitPriceFeedsTypes.Oracles"
                  },
                  "typeName": {
                    "id": 6218,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6217,
                      "name": "Oracles",
                      "nameLocations": [
                        "30842:7:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28092,
                      "src": "30842:7:19"
                    },
                    "referencedDeclaration": 28092,
                    "src": "30842:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Oracles_$28092",
                      "typeString": "enum IWitPriceFeedsTypes.Oracles"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6221,
                  "mutability": "mutable",
                  "name": "_oracleAddress",
                  "nameLocation": "30880:14:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30872:22:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6220,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "30872:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6223,
                  "mutability": "mutable",
                  "name": "_oracleSources",
                  "nameLocation": "30917:14:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30909:22:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6222,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30909:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30761:181:19"
            },
            "returnParameters": {
              "id": 6227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6226,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6277,
                  "src": "30988:6:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 6225,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "30988:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "30987:8:19"
            },
            "scope": 6343,
            "src": "30729:1033:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6330,
              "nodeType": "Block",
              "src": "31942:417:19",
              "statements": [
                {
                  "assignments": [
                    6287
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6287,
                      "mutability": "mutable",
                      "name": "_id4",
                      "nameLocation": "31957:4:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6330,
                      "src": "31953:8:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                        "typeString": "IWitPriceFeedsTypes.ID4"
                      },
                      "typeName": {
                        "id": 6286,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6285,
                          "name": "ID4",
                          "nameLocations": [
                            "31953:3:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 28155,
                          "src": "31953:3:19"
                        },
                        "referencedDeclaration": 28155,
                        "src": "31953:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6293,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 6290,
                            "name": "_symbol",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6279,
                            "src": "31978:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 6289,
                          "name": "hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4982,
                          "src": "31973:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ID_$29561_$",
                            "typeString": "function (string memory) pure returns (IWitPyth.ID)"
                          }
                        },
                        "id": 6291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "31973:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID_$29561",
                          "typeString": "IWitPyth.ID"
                        }
                      ],
                      "id": 6288,
                      "name": "_intoID4",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6131,
                      "src": "31964:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_ID_$29561_$returns$_t_userDefinedValueType$_ID4_$28155_$",
                        "typeString": "function (IWitPyth.ID) pure returns (IWitPriceFeedsTypes.ID4)"
                      }
                    },
                    "id": 6292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31964:23:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                      "typeString": "IWitPriceFeedsTypes.ID4"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31953:34:19"
                },
                {
                  "assignments": [
                    6298
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6298,
                      "mutability": "mutable",
                      "name": "__pf",
                      "nameLocation": "32037:4:19",
                      "nodeType": "VariableDeclaration",
                      "scope": 6330,
                      "src": "31998:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                        "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                      },
                      "typeName": {
                        "id": 6297,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 6296,
                          "name": "WitPriceFeedsDataLib.PriceFeed",
                          "nameLocations": [
                            "31998:20:19",
                            "32019:9:19"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 22395,
                          "src": "31998:30:19"
                        },
                        "referencedDeclaration": 22395,
                        "src": "31998:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6302,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6300,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6287,
                        "src": "32060:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      ],
                      "id": 6299,
                      "name": "__seekPriceFeed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6212,
                      "src": "32044:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_userDefinedValueType$_ID4_$28155_$returns$_t_struct$_PriceFeed_$22395_storage_ptr_$",
                        "typeString": "function (IWitPriceFeedsTypes.ID4) view returns (struct WitPriceFeedsDataLib.PriceFeed storage pointer)"
                      }
                    },
                    "id": 6301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32044:21:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "31998:67:19"
                },
                {
                  "expression": {
                    "id": 6307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 6303,
                        "name": "__pf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6298,
                        "src": "32076:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                          "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                        }
                      },
                      "id": 6305,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberLocation": "32081:16:19",
                      "memberName": "updateConditions",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22390,
                      "src": "32076:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 6306,
                      "name": "_conditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6282,
                      "src": "32100:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                        "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                      }
                    },
                    "src": "32076:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions storage ref"
                    }
                  },
                  "id": 6308,
                  "nodeType": "ExpressionStatement",
                  "src": "32076:35:19"
                },
                {
                  "condition": {
                    "id": 6311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "32126:23:19",
                    "subExpression": {
                      "expression": {
                        "id": 6309,
                        "name": "_conditions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6282,
                        "src": "32127:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                        }
                      },
                      "id": 6310,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "32139:10:19",
                      "memberName": "computeEma",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28144,
                      "src": "32127:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6321,
                  "nodeType": "IfStatement",
                  "src": "32122:84:19",
                  "trueBody": {
                    "id": 6320,
                    "nodeType": "Block",
                    "src": "32151:55:19",
                    "statements": [
                      {
                        "expression": {
                          "id": 6318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "expression": {
                                "id": 6312,
                                "name": "__pf",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6298,
                                "src": "32166:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PriceFeed_$22395_storage_ptr",
                                  "typeString": "struct WitPriceFeedsDataLib.PriceFeed storage pointer"
                                }
                              },
                              "id": 6315,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "32171:10:19",
                              "memberName": "lastUpdate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22394,
                              "src": "32166:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_PriceData_$22357_storage",
                                "typeString": "struct WitPriceFeedsDataLib.PriceData storage ref"
                              }
                            },
                            "id": 6316,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberLocation": "32182:8:19",
                            "memberName": "emaPrice",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22339,
                            "src": "32166:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "30",
                            "id": 6317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "32193:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "32166:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint64",
                            "typeString": "uint64"
                          }
                        },
                        "id": 6319,
                        "nodeType": "ExpressionStatement",
                        "src": "32166:28:19"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6323,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 505,
                          "src": "32261:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                            "typeString": "function () view returns (address)"
                          }
                        },
                        "id": 6324,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "32261:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6325,
                        "name": "_id4",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6287,
                        "src": "32288:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        }
                      },
                      {
                        "id": 6326,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6279,
                        "src": "32307:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 6327,
                        "name": "_conditions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6282,
                        "src": "32329:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_userDefinedValueType$_ID4_$28155",
                          "typeString": "IWitPriceFeedsTypes.ID4"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                          "typeString": "struct IWitPriceFeedsTypes.UpdateConditions memory"
                        }
                      ],
                      "id": 6322,
                      "name": "PriceFeedUpdateConditions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 28074,
                      "src": "32221:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_userDefinedValueType$_ID4_$28155_$_t_string_memory_ptr_$_t_struct$_UpdateConditions_$28153_memory_ptr_$returns$__$",
                        "typeString": "function (address,IWitPriceFeedsTypes.ID4,string memory,struct IWitPriceFeedsTypes.UpdateConditions memory)"
                      }
                    },
                    "id": 6328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32221:130:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6329,
                  "nodeType": "EmitStatement",
                  "src": "32216:135:19"
                }
              ]
            },
            "id": 6331,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__settlePriceFeedUpdateConditions",
            "nameLocation": "31779:33:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6279,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "31841:7:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6331,
                  "src": "31827:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6278,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "31827:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6282,
                  "mutability": "mutable",
                  "name": "_conditions",
                  "nameLocation": "31887:11:19",
                  "nodeType": "VariableDeclaration",
                  "scope": 6331,
                  "src": "31863:35:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UpdateConditions_$28153_memory_ptr",
                    "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                  },
                  "typeName": {
                    "id": 6281,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6280,
                      "name": "UpdateConditions",
                      "nameLocations": [
                        "31863:16:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 28153,
                      "src": "31863:16:19"
                    },
                    "referencedDeclaration": 28153,
                    "src": "31863:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UpdateConditions_$28153_storage_ptr",
                      "typeString": "struct IWitPriceFeedsTypes.UpdateConditions"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "31812:97:19"
            },
            "returnParameters": {
              "id": 6284,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "31942:0:19"
            },
            "scope": 6343,
            "src": "31770:589:19",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6341,
              "nodeType": "Block",
              "src": "32449:53:19",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 6337,
                        "name": "WitPriceFeedsDataLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25111,
                        "src": "32467:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WitPriceFeedsDataLib_$25111_$",
                          "typeString": "type(library WitPriceFeedsDataLib)"
                        }
                      },
                      "id": 6338,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "32488:4:19",
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23835,
                      "src": "32467:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$22336_storage_ptr_$",
                        "typeString": "function () pure returns (struct WitPriceFeedsDataLib.Storage storage pointer)"
                      }
                    },
                    "id": 6339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32467:27:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.Storage storage pointer"
                    }
                  },
                  "functionReturnParameters": 6336,
                  "id": 6340,
                  "nodeType": "Return",
                  "src": "32460:34:19"
                }
              ]
            },
            "id": 6342,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__storage",
            "nameLocation": "32376:9:19",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "32385:2:19"
            },
            "returnParameters": {
              "id": 6336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6335,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6342,
                  "src": "32411:36:19",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                    "typeString": "struct WitPriceFeedsDataLib.Storage"
                  },
                  "typeName": {
                    "id": 6334,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6333,
                      "name": "WitPriceFeedsDataLib.Storage",
                      "nameLocations": [
                        "32411:20:19",
                        "32432:7:19"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22336,
                      "src": "32411:28:19"
                    },
                    "referencedDeclaration": 22336,
                    "src": "32411:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Storage_$22336_storage_ptr",
                      "typeString": "struct WitPriceFeedsDataLib.Storage"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "32410:38:19"
            },
            "scope": 6343,
            "src": "32367:135:19",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 6344,
        "src": "2051:30456:19",
        "usedErrors": [
          16,
          19,
          281,
          286,
          29669,
          29672,
          29675,
          29678,
          29681,
          29684,
          29687,
          29690,
          29693,
          29696,
          40752,
          42702,
          42708
        ],
        "usedEvents": [
          24,
          292,
          28015,
          28034,
          28044,
          28061,
          28074,
          29710,
          45361,
          45638
        ]
      }
    ],
    "src": "33:32476:19"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.30+commit.73712a01.Emscripten.clang"
  },
  "networks": {
    "84532": {
      "events": {},
      "links": {},
      "address": "0xF20d7be44d3f90a3A75359838eC3173c657097f1"
    },
    "11155111": {
      "events": {},
      "links": {},
      "address": "0x13195fEE486d657d357B40B4E0C5C42Da0542825"
    },
    "11155420": {
      "events": {},
      "links": {},
      "address": "0xC5e4b549A8218960c8961b0429f205C6C7072426"
    }
  },
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-10-15T14:34:45.417Z",
  "devdoc": {
    "author": "Guillermo Díaz <guillermo@witnet.io>",
    "errors": {
      "DeviantPrice()": [
        {
          "details": "Signature: 0x7b0d2bb5"
        }
      ],
      "HotPrice()": [
        {
          "details": "Signature: 0x0fbbc581"
        }
      ],
      "InvalidArgument()": [
        {
          "details": "Signature: 0xa9cb9e0d"
        }
      ],
      "InvalidInitialization()": [
        {
          "details": "The contract is already initialized."
        }
      ],
      "InvalidUpdateData()": [
        {
          "details": "Signature: 0xe69ffece"
        }
      ],
      "InvalidUpdateDataSource()": [
        {
          "details": "Signature: 0xe60dce71"
        }
      ],
      "NoFreshUpdate()": [
        {
          "details": "Signature: 0xde2c57fa"
        }
      ],
      "NotInitializing()": [
        {
          "details": "The contract is not initializing."
        }
      ],
      "OwnableInvalidOwner(address)": [
        {
          "details": "The owner is not a valid owner account. (eg. `address(0)`)"
        }
      ],
      "OwnableUnauthorizedAccount(address)": [
        {
          "details": "The caller account is not authorized to perform an operation."
        }
      ],
      "PriceFeedNotFound()": [
        {
          "details": "Signature: 0x14aebe68"
        }
      ],
      "PriceFeedNotFoundWithinRange()": [
        {
          "details": "Signature: 0x45805f5d"
        }
      ],
      "StalePrice()": [
        {
          "details": "Signature: 0x19abf40e"
        }
      ]
    },
    "events": {
      "Initialized(uint64)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "PriceFeedUpdate(bytes32,uint64,int64,uint64)": {
        "details": "Emitted when the price feed with `id` has received a fresh update.",
        "params": {
          "id": "The Pyth Price Feed ID.",
          "price": "Price of the given price update.",
          "publishTime": "Publish time of the given price update."
        }
      }
    },
    "kind": "dev",
    "methods": {
      "clone(address)": {
        "params": {
          "_curator": "Address that will have rights to manage price feeds on the new light-proxy clone."
        }
      },
      "consumer()": {
        "details": "If zero, new price updates will not be reported to any other external address.The consumer contract must implement the `IWitPriceFeedsConsumer` interface, and accept this instance as source of truth.It can only be settled by a curator on cloned instances.It can only be settled by a curator, only on cloned instances."
      },
      "createChainlinkAggregator(string)": {
        "details": "Reverts if symbol is not supported."
      },
      "getEmaPrice(bytes32)": {
        "details": "Reverts if the EMA price is not available, or if the price feeds is settled with a heartbeat and the price was not recently updated.",
        "params": {
          "_id": "The Price Feed ID of which to fetch the EMA price."
        }
      },
      "getEmaPriceNotOlderThan(bytes32,uint64)": {
        "details": "This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently recently."
      },
      "getEmaPriceUnsafe(bytes32)": {
        "details": "This function returns the same price as `getEmaPrice` in the case where the price is available. However, if the price is not recent this function returns the latest available price. The returned price can be from arbitrarily far in the past; this function makes no guarantees that the returned price is recent or useful for any particular application. Users of this function should check the `timestamp` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`."
      },
      "getPrice(bytes32)": {
        "details": "Reverts if the price has not been updated within the last `heartbeatSecs`. ",
        "params": {
          "_id": "The Price Feed ID of which to fetch the price."
        }
      },
      "getPrice(bytes4)": {
        "details": "Reverts if: - `StalePrice()`: the price feed has not been updated within the last `UpdateConditions.heartbeatSecs`, - `DeviantPrice()`: a deviation greater than `UpdateConditions.maxDeviation1000` was detected upon last update attempt. - `InvalidGovernanceTarget()`: no EMA is curretly settled to be computed for this price feed.",
        "params": {
          "_id4": "Unique ID4 identifier of a price feed supported by this contract."
        }
      },
      "getPriceNotOlderThan(bytes32,uint64)": {
        "details": "This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications that require a sufficiently-recent price.  Reverts if the price wasn't updated sufficiently recently."
      },
      "getPriceNotOlderThan(bytes4,uint24)": {
        "details": "Reverts if: - `StalePrice()`: the price feed has not been updated within the last `_age` seconds, ",
        "params": {
          "_age": "Maximum age of acceptable price value.",
          "_id4": "Unique ID4 identifier of a price feed supported by this contract."
        }
      },
      "getPriceUnsafe(bytes32)": {
        "details": "This function returns the most recent price update in this contract without any recency checks. This function is unsafe as the returned price update may be arbitrarily far in the past.  Users of this function should check the `timestamp` in the price to ensure that the returned price is sufficiently recent for their application. If you are considering using this function, it may be safer / easier to use either `getPrice` or `getPriceNoOlderThan`."
      },
      "getPriceUnsafe(bytes4)": {
        "params": {
          "_id4": "Unique ID4 identifier of a price feed supported by this contract."
        }
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
      }
    },
    "title": "WitPriceFeedsV3: On-demand Price Feeds registry for EVM-compatible L1/L2 chains,  natively powered by the Wit/Oracle blockchain, but yet capable of aggregating price  updates from other on-chain price-feed oracles too, if required.  Price feeds purely relying on the Wit/Oracle present some advantanges, though: - Anyone can permissionless pull and report price updates on-chain. - Updating the price requires paying no extra \"update fees\". - Prices can be extracted from independent and highly reputed exchanges and data providers. - Actual data sources for each price feed can be introspected on-chain. - Data source traceability in the Wit/Oracle blockchain is possible for every single price update. Instances of this contract may also provide support for \"routed price feeds\" (computed as the  product or mean average of up to other 8 different price feeds), as well as \"cascade price feeds\"  (where multiple oracles could be used as backup when preferred ones don't manage to provide  fresh enough updates for whatever reason). Also, this contract allows simple plug-and-play integration from  smart contracts, dapps and DeFi projects currently adapted to operate with other price feed solutions, like Chainlink, or Pyth. ",
    "version": 1
  },
  "userdoc": {
    "errors": {
      "DeviantPrice()": [
        {
          "notice": "Requested price deviated too much after previous update."
        }
      ],
      "HotPrice()": [
        {
          "notice": "Attempting to update a price before cooldown period expires."
        }
      ],
      "InvalidArgument()": [
        {
          "notice": "Function arguments are invalid (e.g., the arguments lengths mismatch)"
        }
      ],
      "InvalidGovernanceTarget()": [
        {
          "notice": "Either the number of witnesses that solved a price update is not within the settled range in this contract, or an EMA is being asked for a price feed that's not settled for the EMA to be computed. "
        }
      ],
      "InvalidUpdateData()": [
        {
          "notice": "Update data is invalid (e.g. badly serialized, or bad proof was provided)."
        }
      ],
      "InvalidUpdateDataSource()": [
        {
          "notice": "Update data is coming from an invalid Wit/Oracle Radon Hash."
        }
      ],
      "NoFreshUpdate()": [
        {
          "notice": "There is no fresh update, whereas expected fresh updates."
        }
      ],
      "PriceFeedNotFound()": [
        {
          "notice": "Price feed not found or it is not pushed on-chain yet."
        }
      ],
      "PriceFeedNotFoundWithinRange()": [
        {
          "notice": "There is no price feed found within the given range or it does not exist."
        }
      ],
      "StalePrice()": [
        {
          "notice": "Requested price is stale."
        }
      ]
    },
    "events": {
      "PriceFeedMapper(address,bytes4,string,int8,uint8,string[])": {
        "notice": "Emitted when a new routed price feed gets settled."
      },
      "PriceFeedOracle(address,bytes4,string,int8,uint8,address,bytes32)": {
        "notice": "Emitted when a new oraclized price feed gets settled."
      },
      "PriceFeedRemoved(address,bytes4,string)": {
        "notice": "Emitted when a price feeds gets removed from the list of supported price feeds."
      },
      "PriceFeedUpdateConditions(address,bytes4,string,(uint24,bool,uint24,uint24,uint16,uint16))": {
        "notice": "Emitted when the update conditions of some existing price feed get altered."
      }
    },
    "kind": "user",
    "methods": {
      "acceptOwnership()": {
        "notice": "=============================================================================================================== --- IWitPriceFeedsAdmin ---------------------------------------------------------------------------------------"
      },
      "base()": {
        "notice": "--- read-only methods -----------------------------------------------------------------------------------------"
      },
      "class()": {
        "notice": "Returns the name of the actual contract implementing the logic of this Witnet appliance."
      },
      "clone(address)": {
        "notice": "Creates a light-proxy clone to the `base()` contract address, to be owned by the specified `curator` address.  Curators of cloned contracts can optionally settle one single `IWitPriceFeedConsumer` consuming contract.  The consuming contract, if settled, will be immediately reported every time a new Witnet-certified price update gets pushed into the cloned instance. Either way, price feeds data will be stored in the `WitPriceFeeds` storage. "
      },
      "cloned()": {
        "notice": "Tells whether this contract is a clone of `self()`"
      },
      "consumer()": {
        "notice": "Returns the consumer address where all price updates will be reported to."
      },
      "createChainlinkAggregator(string)": {
        "notice": "Creates a Chainlink Aggregator proxy to the specified symbol."
      },
      "defaultUpdateConditions()": {
        "notice": "Default update conditions that apply to brand new price feeds."
      },
      "footprint()": {
        "notice": "Returns a unique hash determined by the combination of data sources being used by  supported non-routed price feeds, and dependencies of all supported routed  price feeds. The footprint changes if any price feed is modified, added, removed  or if the dependency tree of any routed price feed is altered."
      },
      "getEmaPrice(bytes32)": {
        "notice": "Returns the exponentially-weighted moving average price."
      },
      "getEmaPriceNotOlderThan(bytes32,uint64)": {
        "notice": "Returns the exponentially-weighted moving average price that is no older than `_age` seconds of the current time."
      },
      "getEmaPriceUnsafe(bytes32)": {
        "notice": "Returns the exponentially-weighted moving average price of a price feed without any sanity checks."
      },
      "getPrice(bytes32)": {
        "notice": "Returns the price of given price feed."
      },
      "getPrice(bytes4)": {
        "notice": "Returns last update price for the specified ID4 price feed. Note: This function is sanity-checked version of `getPriceUnsafe` which is useful in applications and smart contracts that require recentl updated price, and no hint of market deviation being currently excessive. "
      },
      "getPriceNotOlderThan(bytes32,uint64)": {
        "notice": "Returns the price that is no older than `_age` seconds of the current time."
      },
      "getPriceNotOlderThan(bytes4,uint24)": {
        "notice": "Returns last known price if no older than `_age` seconds of the current time. Note: This function is a sanity-checked version of `getPriceUnsafe` which is useful in applications and smart contracts that require last known non-deviant price, last updated within specified time range."
      },
      "getPriceUnsafe(bytes32)": {
        "notice": "Returns the price of a price feed without any sanity checks."
      },
      "getPriceUnsafe(bytes4)": {
        "notice": "Returns last updated price without any sanity checks. Note: This function is unsafe as the returned price update may be arbitrarily far in the past. Users of this function should check the `timestamp` of each price feed to ensure that the returned values  are sufficiently recent for their application. If you need safe access to fresh data, please consider using calling to either `getPrice` or `getPriceNoOlderThan` variants. "
      },
      "getUpdateFee(bytes)": {
        "notice": "Legacy-compliant to get the required fee to update an array of price updates, which would be always 0 if relying from the Wit/Oracle framework."
      },
      "hash(string)": {
        "notice": "Determines unique ID for specified `symbol` string."
      },
      "initialized()": {
        "notice": "=============================================================================================================== --- Clonable --------------------------------------------------------------------------------------------------"
      },
      "lookupPriceFeeds()": {
        "notice": "Returns last known price updates and deviations for all supported price feeds without any sanity checks.    "
      },
      "pushDataReport((bytes32,bytes32,(uint16,uint16,uint64),uint64,bytes),bytes)": {
        "notice": "=============================================================================================================== --- IWitOracleConsumer ----------------------------------------------------------------------------------------"
      },
      "specs()": {
        "notice": "Returns the ERC-165 id of the minimal functionality expected for this appliance."
      },
      "valueFor(bytes32)": {
        "notice": "=============================================================================================================== --- IERC2362 --------------------------------------------------------------------------------------------------"
      },
      "witOracle()": {
        "notice": "The Wit/Oracle core address accepted as source of truth."
      }
    },
    "version": 1
  }
}