PageSourceSearch

https://www.techwriter.ai/assets/js/c2136d30.bbc34781.js

js techwriter.ai collected 2026-10-05 15:17:40 UTC 19,060 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkshowcase=self.webpackChunkshowcase||[]).push([["3688"],{3611(e,n,t){t.r(n),t.d(n,{metadata:()=>s,default:()=>h,frontMatter:()=>i,contentTitle:()=>l,toc:()=>o,assets:()=>c});var s=JSON.parse('{"id":"cli/output-formats","title":"Output formats","description":"Choose how rtl_433 emits decoded records with -F (log, kv, json, csv, mqtt, influx, syslog, http, null and more), enrich each line with -M metadata (time, level, protocol, stats), and write to stdout or a file.","source":"@site/content/rtl_433/cli/output-formats.md","sourceDirName":"cli","slug":"/cli/output-formats","permalink":"/rtl_433/cli/output-formats","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1782864000000,"sidebarPosition":3,"frontMatter":{"sidebar_position":3,"title":"Output formats","description":"Choose how rtl_433 emits decoded records with -F (log, kv, json, csv, mqtt, influx, syslog, http, null and more), enrich each line with -M metadata (time, level, protocol, stats), and write to stdout or a file.","autoscribe_synced":"2026-08-09","last_update":{"date":"2026-07-01T00:00:00.000Z"}},"sidebar":"rtl433Sidebar","previous":{"title":"Selecting decoders","permalink":"/rtl_433/cli/choosing-decoders"},"next":{"title":"Analysis & reverse engineering","permalink":"/rtl_433/cli/analysis-mode"}}'),d=t(4848),r=t(8453);let i={sidebar_position:3,title:"Output formats",description:"Choose how rtl_433 emits decoded records with -F (log, kv, json, csv, mqtt, influx, syslog, http, null and more), enrich each line with -M metadata (time, level, protocol, stats), and write to stdout or a file.",autoscribe_synced:"2026-08-09",last_update:{date:new Date("2026-07-01T00:00:00.000Z")}},l="Output formats",c={},o=[{value:"Selecting a format with <code>-F</code>",id:"selecting-a-format-with--f",level:2},{value:"What each format produces",id:"what-each-format-produces",level:3},{value:"Network and service formats",id:"network-and-service-formats",level:2},{value:"MQTT",id:"mqtt",level:3},{value:"InfluxDB",id:"influxdb",level:3},{value:"Syslog",id:"syslog",level:3},{value:"HTTP",id:"http",level:3},{value:"Adding metadata with <code>-M</code>",id:"adding-metadata-with--m",level:2},{value:"Writing to stdout vs. a file",id:"writing-to-stdout-vs-a-file",level:2},{value:"Sources",id:"sources",level:2}];function a(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",mdxadmonitiontitle:"mdxadmonitiontitle",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"output-formats",children:"Output formats"})}),"\n",(0,d.jsxs)(n.p,{children:["When ",(0,d.jsx)(n.code,{children:"rtl_433"})," decodes a message it has to render that record somewhere. Two options control this: ",(0,d.jsx)(n.code,{children:"-F"})," selects the ",(0,d.jsx)(n.strong,{children:"output format"})," (and where it goes), and ",(0,d.jsx)(n.code,{children:"-M"})," adds ",(0,d.jsx)(n.strong,{children:"metadata"})," to every output line. Both options can be given multiple times, so a single run can, for example, print human-readable text to the console while also appending JSON to a file and publishing to MQTT."]}),"\n",(0,d.jsx)(n.admonition,{title:"Defaults",type:"note",children:(0,d.jsxs)(n.p,{children:["Without any ",(0,d.jsx)(n.code,{children:"-F"})," option the default output is ",(0,d.jsx)(n.strong,{children:"LOG and KV"}),". Use ",(0,d.jsx)(n.code,{children:"-F null"})," to remove the default output \u2014 useful when you only want one of the machine-readable formats."]})}),"\n",(0,d.jsxs)(n.h2,{id:"selecting-a-format-with--f",children:["Selecting a format with ",(0,d.jsx)(n.code,{children:"-F"})]}),"\n",(0,d.jsxs)(n.p,{children:["The ",(0,d.jsx)(n.code,{children:"-F"})," option takes one of the following formats:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-F log | kv | json | csv | mqtt | influx | syslog | trigger | rtl_tcp | http | null | help\n"})}),"\n",(0,d.jsxs)(n.p,{children:["By default each format writes to ",(0,d.jsx)(n.strong,{children:"stdout"}),". To append to a file instead, add ",(0,d.jsx)(n.code,{children:":<filename>"}),":"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# Append CSV records to a file (as documented in the man page)\nrtl_433 -F csv:log.csv\n"})}),"\n",(0,d.jsxs)(n.p,{children:["Because ",(0,d.jsx)(n.code,{children:"-F"})," can be repeated, you can fan out the same decoded stream to several destinations at once:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# Human-readable KV on the console, JSON appended to a file\nrtl_433 -F kv -F json:events.json\n"})}),"\n",(0,d.jsx)(n.h3,{id:"what-each-format-produces",children:"What each format produces"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Format"}),(0,d.jsx)(n.th,{children:"Description"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"log"})}),(0,d.jsx)(n.td,{children:"Human-readable log lines (part of the default output)."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"kv"})}),(0,d.jsx)(n.td,{children:"Key-value text, one labelled field per line \u2014 the default human-readable record."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"json"})}),(0,d.jsx)(n.td,{children:"One JSON object per decoded message; ideal for piping into other tools."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"csv"})}),(0,d.jsx)(n.td,{children:"Comma-separated values with a header row; convenient for spreadsheets."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"mqtt"})}),(0,d.jsx)(n.td,{children:"Publishes records to an MQTT broker."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"influx"})}),(0,d.jsx)(n.td,{children:"Writes to an InfluxDB time-series database."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"syslog"})}),(0,d.jsx)(n.td,{children:"Sends records as syslog messages over UDP."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"trigger"})}),(0,d.jsxs)(n.td,{children:["Writes a ",(0,d.jsx)(n.code,{children:"1"})," to a path for each event (e.g. to drive a GPIO)."]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"rtl_tcp"})}),(0,d.jsxs)(n.td,{children:["Adds an ",(0,d.jsx)(n.code,{children:"rtl_tcp"})," pass-through server."]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"http"})}),(0,d.jsx)(n.td,{children:"Starts an HTTP API server with a browser UI."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"null"})}),(0,d.jsx)(n.td,{children:"Produces no output; used to suppress the default LOG/KV output."})]})]})]}),"\n",(0,d.jsxs)(n.admonition,{type:"tip",children:[(0,d.jsxs)(n.mdxadmonitiontitle,{children:["Run ",(0,d.jsx)(n.code,{children:"-F help"})]}),(0,d.jsxs)(n.p,{children:["Pass any of ",(0,d.jsx)(n.code,{children:"-d"}),", ",(0,d.jsx)(n.code,{children:"-g"}),", ",(0,d.jsx)(n.code,{children:"-R"}),", ",(0,d.jsx)(n.code,{children:"-X"}),", ",(0,d.jsx)(n.code,{children:"-F"}),", ",(0,d.jsx)(n.code,{children:"-M"}),", ",(0,d.jsx)(n.code,{children:"-r"}),", ",(0,d.jsx)(n.code,{children:"-w"}),", or ",(0,d.jsx)(n.code,{children:"-W"})," without an argument (for example ",(0,d.jsx)(n.code,{children:"-F help"}),") to print the detailed help for that option, including the exact sub-option syntax."]})]}),"\n",(0,d.jsx)(n.h2,{id:"network-and-service-formats",children:"Network and service formats"}),"\n",(0,d.jsx)(n.p,{children:"Several formats accept a host/port and additional options."}),"\n",(0,d.jsx)(n.h3,{id:"mqtt",children:"MQTT"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-F mqtt[s][:[//]host[:port][,<options>]]   (default: localhost:1883)\n"})}),"\n",(0,d.jsxs)(n.p,{children:["MQTT options are ",(0,d.jsx)(n.code,{children:"user=foo"}),", ",(0,d.jsx)(n.code,{children:"pass=bar"}),", ",(0,d.jsx)(n.code,{children:"retain[=0|1]"}),", and ",(0,d.jsx)(n.code,{children:"<format>[=topic]"}),". The default user and password are read from the ",(0,d.jsx)(n.code,{children:"MQTT_USERNAME"})," and ",(0,d.jsx)(n.code,{children:"MQTT_PASSWORD"})," environment variables. The supported MQTT formats (the default is all of them) are:"]}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"availability"})," \u2014 posts availability (online/offline)"]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"events"})," \u2014 posts JSON event data, default topic ",(0,d.jsx)(n.code,{children:"<base>/events"})]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"states"})," \u2014 posts JSON state data, default topic ",(0,d.jsx)(n.code,{children:"<base>/states"})]}),"\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.code,{children:"devices"})," \u2014 posts device and sensor info in nested topics, default ",(0,d.jsx)(n.code,{children:"<base>/devices[/type][/model][/subtype][/channel][/id]"})]}),"\n"]}),"\n",(0,d.jsxs)(n.p,{children:["A base topic can be set with ",(0,d.jsx)(n.code,{children:"base=<topic>"}),"; the default is ",(0,d.jsx)(n.code,{children:"rtl_433/HOSTNAME"}),". Use ",(0,d.jsx)(n.code,{children:"mqtts://"})," with ",(0,d.jsx)(n.code,{children:"tls_cert"}),", ",(0,d.jsx)(n.code,{children:"tls_key"}),", and ",(0,d.jsx)(n.code,{children:"tls_ca_cert"})," for TLS."]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:'# Verbatim from the rtl_433 man page\nrtl_433 -F "mqtt://localhost:1883,user=USERNAME,pass=PASSWORD,retain=0,devices=rtl_433[/id]"\n'})}),"\n",(0,d.jsx)(n.admonition,{title:"One driver per MQTT instance",type:"info",children:(0,d.jsxs)(n.p,{children:["With MQTT each ",(0,d.jsx)(n.code,{children:"rtl_433"})," instance needs a distinct driver selection. The MQTT Client-ID is computed from the driver string, so if you run multiple RTL-SDR dongles, set a serial and select by it."]})}),"\n",(0,d.jsx)(n.h3,{id:"influxdb",children:"InfluxDB"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-F influx[:[//]host[:port][/<path and options>]]\n"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:'# InfluxDB 2.0\nrtl_433 -F "influx://localhost:9999/api/v2/write?org=<org>&bucket=<bucket>,token=<authtoken>"\n\n# InfluxDB 1.x\nrtl_433 -F "influx://localhost:8086/write?db=<db>&p=<password>&u=<user>
1"\n'})}),"\n",(0,d.jsxs)(n.p,{children:["The man page recommends adding ",(0,d.jsx)(n.code,{children:"-M time:unix:usec:utc"})," for correct timestamps in InfluxDB."]}),"\n",(0,d.jsx)(n.h3,{id:"syslog",children:"Syslog"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-F syslog[:[//]host[:port]]   (default: localhost:514)\n"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"rtl_433 -F syslog:127.0.0.1:1514\n"})}),"\n",(0,d.jsx)(n.h3,{id:"http",children:"HTTP"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-F http[:[//]bind[:port]]   (default: 0.0.0.0:8433)\n"})}),"\n",(0,d.jsxs)(n.p,{children:["This adds an HTTP API server; a UI is reachable at e.g. ",(0,d.jsx)(n.code,{children:"http://localhost:8433/"}),"."]}),"\n",(0,d.jsxs)(n.h2,{id:"adding-metadata-with--m",children:["Adding metadata with ",(0,d.jsx)(n.code,{children:"-M"})]}),"\n",(0,d.jsxs)(n.p,{children:["The ",(0,d.jsx)(n.code,{children:"-M"})," option attaches extra metadata to every output line. It accepts:"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-text",children:"-M time[:<options>] | protocol | level | noise[:<secs>] | stats | bits | help\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,d.jsxs)(n.table,{children:[(0,d.jsx)(n.thead,{children:(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.th,{children:"Option"}),(0,d.jsx)(n.th,{children:"Effect"})]})}),(0,d.jsxs)(n.tbody,{children:[(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time"})}),(0,d.jsx)(n.td,{children:"Add current date and time (preset for live inputs)."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:rel"})}),(0,d.jsx)(n.td,{children:"Add sample-position metadata (preset for read-file and stdin)."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:unix"})}),(0,d.jsx)(n.td,{children:"Seconds since the Unix epoch; always UTC."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:iso"})}),(0,d.jsxs)(n.td,{children:["ISO-8601 format, ",(0,d.jsx)(n.code,{children:"YYYY-MM-DDThh:mm:ss"}),"."]})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:off"})}),(0,d.jsx)(n.td,{children:"Remove time metadata."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:usec"})}),(0,d.jsx)(n.td,{children:"Add microseconds to the date/time."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:tz"})}),(0,d.jsx)(n.td,{children:"Output time with timezone offset."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"time:utc"})}),(0,d.jsx)(n.td,{children:"Output time in UTC."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsxs)(n.td,{children:[(0,d.jsx)(n.code,{children:"protocol"})," / ",(0,d.jsx)(n.code,{children:"noprotocol"})]}),(0,d.jsx)(n.td,{children:"Add or remove the decoder protocol number."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"level"})}),(0,d.jsx)(n.td,{children:"Add Modulation, Frequency, RSSI, SNR, and Noise."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"noise[:<secs>]"})}),(0,d.jsx)(n.td,{children:"Report estimated noise level at intervals (default: 10 seconds)."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"stats[:[<level>][:<interval>]]"})}),(0,d.jsx)(n.td,{children:"Report statistics (default: 600 seconds)."})]}),(0,d.jsxs)(n.tr,{children:[(0,d.jsx)(n.td,{children:(0,d.jsx)(n.code,{children:"bits"})}),(0,d.jsx)(n.td,{children:"Add the bit representation to code outputs (for debug)."})]})]})]}),"\n",(0,d.jsxs)(n.p,{children:["The ",(0,d.jsx)(n.code,{children:"usec"})," and ",(0,d.jsx)(n.code,{children:"utc"})," modifiers can be combined with other time options, for example ",(0,d.jsx)(n.code,{children:"time:iso:utc"})," or ",(0,d.jsx)(n.code,{children:"time:unix:usec"}),". As noted above, ",(0,d.jsx)(n.code,{children:"time:unix:usec:utc"})," is recommended when writing to InfluxDB."]}),"\n",(0,d.jsxs)(n.p,{children:["For ",(0,d.jsx)(n.code,{children:"stats"}),", the reporting level is: ",(0,d.jsx)(n.code,{children:"0"})," no report, ",(0,d.jsx)(n.code,{children:"1"})," report successful devices, ",(0,d.jsx)(n.code,{children:"2"})," report active devices, ",(0,d.jsx)(n.code,{children:"3"})," report all."]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# Report microsecond-accurate timestamps and add reception levels\nrtl_433 -M time:usec -M level\n"})}),"\n",(0,d.jsx)(n.h2,{id:"writing-to-stdout-vs-a-file",children:"Writing to stdout vs. a file"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsxs)(n.li,{children:[(0,d.jsx)(n.strong,{children:"stdout"})," is the default destination for every ",(0,d.jsx)(n.code,{children:"-F"})," format. This makes piping natural."]}),"\n",(0,d.jsxs)(n.li,{children:["Append the format to a ",(0,d.jsx)(n.strong,{children:"file"})," with ",(0,d.jsx)(n.code,{children:":<filename>"}),", e.g. ",(0,d.jsx)(n.code,{children:"-F json:events.json"}),"."]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"# Pipe JSON, in UTC, into an MQTT publisher (from the README examples)\nrtl_433 -F json -M utc | mosquitto_pub -t home/rtl_433 -l\n"})}),"\n",(0,d.jsxs)(n.blockquote,{children:["\n",(0,d.jsxs)(n.p,{children:[(0,d.jsx)(n.strong,{children:"Illustrative example."})," The block below shows the ",(0,d.jsx)(n.em,{children:"shape"})," of JSON output for one decoded message. The exact fields depend on the device that transmitted; field semantics are documented in the project's data-format reference."]}),"\n"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-json",children:'{"time":"2026-05-30 14:02:18","model":"Acurite-Tower","id":11524,"channel":"A","temperature_C":21.3,"humidity":48,"battery_ok":1,"mic":"CHECKSUM"}\n'})}),"\n",(0,d.jsxs)(n.admonition,{title:"Suppress the default, keep only one machine format",type:"tip",children:[(0,d.jsxs)(n.p,{children:["Combine ",(0,d.jsx)(n.code,{children:"-F null"})," with the format you want to keep the console clean while logging structured data:"]}),(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-bash",children:"rtl_433 -F null -F json:events.json\n"})})]}),"\n",(0,d.jsx)(n.h2,{id:"sources",children:"Sources"}),"\n",(0,d.jsxs)(n.ul,{children:["\n",(0,d.jsx)(n.li,{children:(0,d.jsx)(n.a,{href:"https://raw.githubusercontent.com/merbanan/rtl_433/master/README.md",children:"rtl_433 README (usage and examples)"})}),"\n",(0,d.jsx)(n.li,{children:(0,d.jsxs)(n.a,{href:"https://raw.githubusercontent.com/merbanan/rtl_433/master/man/man1/rtl_433.1",children:["rtl_433 man page (",(0,d.jsx)(n.code,{children:"man/man1/rtl_433.1"}),")"]})}),"\n",(0,d.jsx)(n.li,{children:(0,d.jsxs)(n.a,{href:"https://raw.githubusercontent.com/merbanan/rtl_433/master/docs/DATA_FORMAT.md",children:["rtl_433 JSON data field documentation (",(0,d.jsx)(n.code,{children:"docs/DATA_FORMAT.md"}),")"]})}),"\n",(0,d.jsx)(n.li,{children:(0,d.jsx)(n.a,{href:"https://triq.org/rtl_433/",children:"rtl_433 project site (triq.org)"})}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(a,{...e})}):a(e)}},8453(e,n,t){t.d(n,{R:()=>i,x:()=>l});var s=t(6540);let d={},r=s.createContext(d);function i(e){let n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(d):e.components||d:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.