<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-moq-msf-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title>MOQT Streaming Format</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-moq-msf-01"/>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="02"/>
    <area>Applications and Real-Time</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>MoQ</keyword>
    <keyword>MoQTransport</keyword>
    <keyword>MSF</keyword>
    <abstract>
      <?line 82?>

<t>This document specifies the MOQT Streaming Format, designed to operate on Media Over QUIC Transport.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://moq-wg.github.io/msf/ draft-ietf-moq-msf.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-moq-msf/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Media Over QUIC Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/moq-wg/msf"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MOQT Streaming Format (MSF) is a media format designed to deliver LOC <xref target="LOC"/>
compliant media content over Media Over QUIC Transport (MOQT) <xref target="MoQTransport"/>.
MSF works by fragmenting the bitstream into objects that can be independently
transmitted. MSF leverages a catalog format to describe the output of the
original publisher. MSF specifies how content should be packaged and signaled,
defines how the catalog communicates the content, specifies prioritization
strategies for real-time and workflows for beginning and terminating broadcasts.
MSF also details how end-subscribers may perform adaptive bitrate switching.
MSF is targeted at real-time and interactive levels of live latency, as well as
VOD content.</t>
      <t>This document describes version 1 of the streaming format.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses the conventions detailed in Section 1.3 of <xref target="RFC9000"/> when
describing the binary encoding.</t>
    </section>
    <section anchor="scope">
      <name>Scope</name>
      <t>The purpose of MSF is to provide an interoperable media streaming format
operating over <xref target="MoQTransport"/>. Interoperability implies that:</t>
      <ul spacing="normal">
        <li>
          <t>An original publisher can package incoming media content into tracks, prepare
a catalog and announce the availability of the content to an MOQT relay. Media
content refers to audio and video data, as well as ancillary data such as
captions, subtitles, accessibility and other timed-text data.</t>
        </li>
        <li>
          <t>An MOQT relay can process the announcement as well as cache and propagate the
tracks, both to other relays or to the final subscriber.</t>
        </li>
        <li>
          <t>A final subscriber can parse the catalog, request tracks, decode and render
the received media data.</t>
        </li>
      </ul>
      <t>MSF is intended to provide a format for delivering commercial media content. To
that end, the following features are within scope:</t>
      <ul spacing="normal">
        <li>
          <t>Video codecs - all codecs supported by <xref target="LOC"/></t>
        </li>
        <li>
          <t>Audio codecs  - all audio codecs supported by <xref target="LOC"/></t>
        </li>
        <li>
          <t>Catalog track - describes the availability and characteristics of content
produced by the original publisher.</t>
        </li>
        <li>
          <t>Timeline track - describes the relationship between MOQT Group and Object IDs
to media time.</t>
        </li>
        <li>
          <t>Token-based authorization and access control</t>
        </li>
        <li>
          <t>Captions + Subtitles - support for <xref target="WEBVTT"/> and <xref target="IMSC1"/> transmission</t>
        </li>
        <li>
          <t>Latency support across multiple regimes (thresholds are informative only and
describe the delay between the original publisher placing the content on the
wire and the final subscriber rendering it)</t>
        </li>
        <li>
          <t>Real-time - less than 500ms</t>
        </li>
        <li>
          <t>Interactive - between 500ms and 2500ms</t>
        </li>
        <li>
          <t>Standard  - above 2500ms</t>
        </li>
        <li>
          <t>VOD latency - content that was previously produced, is no longer live and is
available indefinitely.</t>
        </li>
        <li>
          <t>Content encryption</t>
        </li>
        <li>
          <t>ABR between time-synced tracks - subscribers may switch between tracks
at different quality levels in order to maximize visual or audio quality under
conditions of throughput variability.</t>
        </li>
        <li>
          <t>Capable of delivering interstitial advertising.</t>
        </li>
        <li>
          <t>Logs and analytics management - support for the reporting of client-side QoE
 and relay delivery actions via publish tracks using <xref target="MOQLOG"/> and <xref target="MOQMETRICS"/>.</t>
        </li>
      </ul>
      <t>Initial versions of MSF will prioritize basic features necessary to exercise
interoperability across delivery systems. Later versions will add commercially
necessary features.</t>
    </section>
    <section anchor="mediapackaging">
      <name>Media packaging</name>
      <t>MSF delivers LOC <xref target="LOC"/> packaged media bitstreams.</t>
      <section anchor="loc-packaging">
        <name>LOC packaging</name>
        <t>This specification references Low Overhead Container (LOC) <xref target="LOC"/> to define how
audio and video content is packaged. With this packaging mode, each
EncodedAudioChunk or EncodedVideoChunk sample is placed in a separate MOQT
Object. Samples that belong to the same Group of Pictures (GOP) <bcp14>MUST</bcp14> be placed
within the same MOQT Group.</t>
        <t>When LOC packaging is used for a track, the catalog packaging attribute
(<xref target="packaging"/>) <bcp14>MUST</bcp14> be present and it <bcp14>MUST</bcp14> be populated with a value of "loc".</t>
      </section>
      <section anchor="timealignment">
        <name>Time-alignment</name>
        <t>MSF Tracks <bcp14>MAY</bcp14> be time-aligned. Those that are, are subject to the following
requirements:</t>
        <ul spacing="normal">
          <li>
            <t>Tracks advertised in the catalog as belonging to a common alternate group <bcp14>MUST</bcp14>
be time-aligned.</t>
          </li>
          <li>
            <t>The render duration of the first media object of each equally numbered MOQT
Group, after decoding, <bcp14>SHOULD</bcp14> have overlapping presentation time.</t>
          </li>
        </ul>
        <t>A consequence of this restriction is that an MSF receiver <bcp14>SHOULD</bcp14> be able to
cleanly switch between time-aligned media tracks at group boundaries.</t>
        <t>If time-aligned media tracks do not have overlapping presentation time at
equally-numbered group boundaries, then an alternate mechanism, not defined by
this specification, must be provided to the client to enable it to switch smoothly
between time-aligned, but numerically dissimilar, Group IDs.</t>
      </section>
      <section anchor="contentprotection">
        <name>Content protection and encryption</name>
        <t>MSF supports end-to-end encryption of media content using MoQ Secure Objects
<xref target="SecureObjects"/>. When encryption is enabled, the payload of LOC-packaged
media objects is encrypted and authenticated, while relays can still route
content based on unencrypted header information.</t>
        <section anchor="encryption-scheme-signaling">
          <name>Encryption scheme signaling</name>
          <t>The encryption scheme and parameters are signaled in the catalog using the
following track-level fields:</t>
          <ul spacing="normal">
            <li>
              <t>encryptionScheme <xref target="encryptionscheme"/> - identifies the encryption mechanism</t>
            </li>
            <li>
              <t>cipherSuite <xref target="ciphersuite"/> - specifies the AEAD algorithm</t>
            </li>
            <li>
              <t>keyId <xref target="keyid"/> - identifies the key material for decryption</t>
            </li>
            <li>
              <t>trackBaseKey <xref target="trackbasekey"/> - the base key material for this track</t>
            </li>
          </ul>
          <t>When the encryptionScheme field is present in a track definition, subscribers
<bcp14>MUST</bcp14> decrypt the object payload using the specified scheme before processing.</t>
        </section>
        <section anchor="key-management">
          <name>Key management</name>
          <t>The keyId and trackBaseKey values are obtained from an external key management
system and the mechanism for obtaining these values is out of scope for this
specification. Examples of key management systems include MLS-based key
distribution <xref target="E2EE-MLS"/> or other out-of-band key exchange mechanisms.</t>
          <t>Depending on the key management mechanism in use, a keyId <bcp14>MAY</bcp14> be scoped to:</t>
          <ul spacing="normal">
            <li>
              <t>A single track</t>
            </li>
            <li>
              <t>A single MoQ Session</t>
            </li>
            <li>
              <t>Multiple tracks across one or more MoQ sessions</t>
            </li>
          </ul>
          <t>Publishers and subscribers <bcp14>MUST</bcp14> use the same key management system and agree
on the keyId scope semantics for interoperable operation.</t>
        </section>
        <section anchor="recommended-encryption-scheme">
          <name>Recommended encryption scheme</name>
          <t>The <bcp14>RECOMMENDED</bcp14> encryption scheme for MSF is "moq-secure-objects".
Implementations supporting content encryption <bcp14>MUST</bcp14> implement the
"moq-secure-objects" scheme as defined in <xref target="SecureObjects"/>.</t>
          <t>When using the "moq-secure-objects" scheme:</t>
          <ul spacing="normal">
            <li>
              <t>The cipherSuite field <bcp14>MUST</bcp14> be present and set to a supported cipher suite value</t>
            </li>
            <li>
              <t>The keyId field <bcp14>MUST</bcp14> be present to identify the key material</t>
            </li>
            <li>
              <t>The trackBaseKey field <bcp14>MUST</bcp14> be present to provide the base key material</t>
            </li>
          </ul>
        </section>
        <section anchor="encrypted-object-structure">
          <name>Encrypted object structure</name>
          <t>For LOC-packaged tracks with encryption enabled (see <xref section="4" sectionFormat="comma" target="SecureObjects"/>):</t>
          <ul spacing="normal">
            <li>
              <t>The immutable header extensions (including Group ID and Object ID) remain
in plaintext and are authenticated</t>
            </li>
            <li>
              <t>The object payload is encrypted and authenticated using the specified cipher</t>
            </li>
            <li>
              <t>Private header extensions (type 0xA) are encrypted alongside the payload</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="catalog">
      <name>Catalog</name>
      <t>A Catalog is an MOQT Track that provides information about the other tracks being
produced by a MSF publisher. A Catalog is used by MSF publishers for
advertising their output and for subscribers in consuming that output. The
payload of the Catalog object is opaque to Relays and can be end-to-end
encrypted. The Catalog provides the names and namespaces of the tracks being
produced, along with the relationship between tracks, properties of the tracks
that consumers may use for selection and any relevant initialization data.</t>
      <t>The catalog track <bcp14>MUST</bcp14> have a case-sensitive Track Name of "catalog".</t>
      <t>A catalog object <bcp14>MAY</bcp14> be independent of other catalog objects or it <bcp14>MAY</bcp14> represent
a delta update of a prior catalog object. The first catalog object published
within a new group <bcp14>MUST</bcp14> be independent and <bcp14>MUST</bcp14> provide a complete catalog that
does not require any prior catalog object for interpretation. Any catalog updates
that precede the first Object of the latest Group <bcp14>MUST</bcp14> be ignored.</t>
      <t>A catalog object <bcp14>SHOULD</bcp14> be published only when the availability of tracks changes, or
after a period of time has passed such that the catalog object might fall out of cache
in a delivery network.</t>
      <t>Each catalog update <bcp14>MUST</bcp14> be mapped to an MOQT Object. All catalog updates, both
independent and delta, <bcp14>MUST</bcp14> be mapped to MOQT sub-group 0. The first Object (with
Object ID 0) in any Group in a catalog track <bcp14>MUST</bcp14> hold an independent copy of the
catalog. All subsequent Objects within that Group (i.e Objects IDs &gt;= 1) <bcp14>MUST</bcp14> hold
a delta update. As soon as an independent update is produced, it <bcp14>MUST</bcp14> be placed at the
start of a new Group.</t>
      <t>Subscribers accessing the catalog <bcp14>MUST</bcp14> use SUBSCRIBE with a Joining FETCH
(offset = 0) in order to obtain the latest complete catalog along with all subsequent
catalog objects, including delta updates, that follow.</t>
      <t>A catalog is a JSON <xref target="JSON"/> document, comprised of a series of mandatory and
optional fields. At a minimum, a catalog <bcp14>MUST</bcp14> provide all mandatory fields. Some
fields are conditional depending on the type of content carried. A producer <bcp14>MAY</bcp14> add
additional fields to the ones described in this draft. Custom field names <bcp14>MUST NOT</bcp14>
collide with field names described in this draft.</t>
      <t>A parser <bcp14>MUST</bcp14> ignore fields it does not understand.</t>
      <section anchor="root-catalog-fields">
        <name>Root Catalog Fields</name>
        <t>Table 1 lists the fields defined at the root of the catalog JSON object.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Name</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">MSF version</td>
              <td align="left">version</td>
              <td align="left">
                <xref target="msfversion"/></td>
            </tr>
            <tr>
              <td align="left">Generated at</td>
              <td align="left">generatedAt</td>
              <td align="left">
                <xref target="generatedat"/></td>
            </tr>
            <tr>
              <td align="left">Is Complete</td>
              <td align="left">isComplete</td>
              <td align="left">
                <xref target="iscomplete"/></td>
            </tr>
            <tr>
              <td align="left">Tracks</td>
              <td align="left">tracks</td>
              <td align="left">
                <xref target="tracks"/></td>
            </tr>
            <tr>
              <td align="left">Publish tracks</td>
              <td align="left">publishTracks</td>
              <td align="left">
                <xref target="publishtracks"/></td>
            </tr>
            <tr>
              <td align="left">Delta update</td>
              <td align="left">deltaUpdate</td>
              <td align="left">
                <xref target="deltaupdate"/></td>
            </tr>
            <tr>
              <td align="left">Initialization Data List</td>
              <td align="left">initDataList</td>
              <td align="left">
                <xref target="initdatalist"/></td>
            </tr>
          </tbody>
        </table>
        <section anchor="msfversion">
          <name>MSF version</name>
          <t>Required: Yes    JSON Type: String    Location: Root Catalog</t>
          <t>Specifies the version of MSF referenced by this catalog. There is no guarantee
that future catalog versions are backwards compatible and field definitions and
interpretation may change between versions. A subscriber <bcp14>MUST NOT</bcp14> attempt to
parse a catalog version which it does not understand.</t>
          <t>For usage against IETF Internet-Draft releases, follow the convention of specifying
the version as "draft-XX". For example "draft-03" refers to the -03 draft release.</t>
        </section>
        <section anchor="generatedat">
          <name>Generated at</name>
          <t>Required: Optional    JSON Type: Number    Location: Root Catalog</t>
          <t>The wallclock time at which this catalog instance was generated, expressed as the
number of milliseconds that have elapsed since January 1, 1970 (midnight UTC/GMT).
This field <bcp14>SHOULD NOT</bcp14> be included if the isLive field is false.</t>
        </section>
        <section anchor="iscomplete">
          <name>Is Complete</name>
          <t>Required: Optional    JSON Type: Boolean    Location: Root Catalog</t>
          <t>A catalog-level indication that the broadcast is complete. This is a commitment that
all tracks are complete, no new tracks will be added to the catalog, and no new
content will be published on any track. Note that even if all individual tracks have
isLive <xref target="islive"/> set to FALSE, new tracks could still be added to the catalog until
isComplete is set to TRUE. This field <bcp14>MUST NOT</bcp14> be included if it is FALSE. This field
<bcp14>MUST NOT</bcp14> be removed from a catalog once it has been added.</t>
        </section>
        <section anchor="tracks">
          <name>Tracks</name>
          <t>Required: Yes    JSON Type: Array    Location: Root Catalog</t>
          <t>An array of track objects <xref target="trackobject"/>.</t>
        </section>
        <section anchor="publishtracks">
          <name>Publish tracks</name>
          <t>Location: R    Required: Optional    JSON Type: Array</t>
          <t>An array of publish track objects. Publish tracks define tracks to which the
subscriber can publish data, such as logs, metrics, or other QoE data. This enables
bi-directional communication where the subscriber acts as a publisher for specific
tracks. Each publish track object follows the same structure as a regular track
object <xref target="trackobject"/> but is used for the reverse direction of data flow.</t>
        </section>
        <section anchor="deltaupdate">
          <name>Delta update</name>
          <t>Required: Optional    JSON Type: Array    Location: Root Catalog</t>
          <t>An ordered Array of operation objects that specify changes to apply to the catalog.
If this field is present, the catalog represents a delta (or partial) update with
a restricted set of fields and special processing rules - see <xref target="deltaupdates"/>.
If this field is absent, the catalog is independent.</t>
          <t>Operations are applied sequentially in the order they appear in the array.
Each operation object <bcp14>MUST</bcp14> contain an "op" field indicating the operation type,
and a "tracks" field containing an Array of track objects <xref target="trackobject"/>.
The following operation types are defined:</t>
          <ul spacing="normal">
            <li>
              <t>"add" - Add new tracks that have not previously been declared. The value of
the "tracks" field is an Array of track objects <xref target="trackobject"/>.</t>
            </li>
            <li>
              <t>"remove" - Remove tracks that have been previously declared. The value of
the "tracks" field is an Array of track objects <xref target="trackobject"/>. Each track
object <bcp14>MUST</bcp14> include a Track Name <xref target="trackname"/> field, <bcp14>MAY</bcp14> include a Track
Namespace <xref target="tracknamespace"/> field, and <bcp14>MUST NOT</bcp14> hold any other fields.</t>
            </li>
            <li>
              <t>"clone" - Clone new tracks from previously declared tracks. The value of
the "tracks" field is an Array of track objects <xref target="trackobject"/>. Each track
object <bcp14>MUST</bcp14> include a Parent Name <xref target="parentname"/> field and <bcp14>MAY</bcp14> include a
Parent namespace <xref target="parentnamespace"/> field. The cloned track inherits all
attributes from the parent except the Track Name which <bcp14>MUST</bcp14> be new.
Attributes redefined in the track object override inherited values.</t>
            </li>
          </ul>
        </section>
        <section anchor="initdatalist">
          <name>Initialization Data List</name>
          <t>Required: Optional    JSON Type: Array    Location: Root Catalog</t>
          <t>An array of initialization reference objects. Each initialization reference
object has the following fields:</t>
          <ul spacing="normal">
            <li>
              <t>id : a string defining a reference to this initialization data which is unique
within the scope of the catalog.</t>
            </li>
            <li>
              <t>type: as string defining the type of reference. This version of the specification
defines a single allowed type, per the table below</t>
            </li>
          </ul>
          <table>
            <thead>
              <tr>
                <th align="left">Type</th>
                <th align="left">Data field definition</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">inline</td>
                <td align="left">Base64 <xref target="BASE64"/> encoded initialization data</td>
              </tr>
            </tbody>
          </table>
          <ul spacing="normal">
            <li>
              <t>data: a string holding the init payload as defined by the type.</t>
            </li>
          </ul>
          <t>The Initialization Data List, if present, <bcp14>MUST</bcp14> be located after the tracks array in
the root of the JSON catalog. The purpose of this is to improve the human readability
of the catalog tracks by moving the verbose init data towards the end of the document.</t>
        </section>
      </section>
      <section anchor="track-object-fields">
        <name>Track Object Fields</name>
        <t>Table 2 lists the fields defined within each track object.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Name</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Track namespace</td>
              <td align="left">namespace</td>
              <td align="left">
                <xref target="tracknamespace"/></td>
            </tr>
            <tr>
              <td align="left">Track name</td>
              <td align="left">name</td>
              <td align="left">
                <xref target="trackname"/></td>
            </tr>
            <tr>
              <td align="left">Packaging</td>
              <td align="left">packaging</td>
              <td align="left">
                <xref target="packaging"/></td>
            </tr>
            <tr>
              <td align="left">Event timeline type</td>
              <td align="left">eventType</td>
              <td align="left">
                <xref target="eventtype"/></td>
            </tr>
            <tr>
              <td align="left">Is Live</td>
              <td align="left">isLive</td>
              <td align="left">
                <xref target="islive"/></td>
            </tr>
            <tr>
              <td align="left">Target latency</td>
              <td align="left">targetLatency</td>
              <td align="left">
                <xref target="targetlatency"/></td>
            </tr>
            <tr>
              <td align="left">Buffers</td>
              <td align="left">buffers</td>
              <td align="left">
                <xref target="buffers"/></td>
            </tr>
            <tr>
              <td align="left">Track role</td>
              <td align="left">role</td>
              <td align="left">
                <xref target="trackrole"/></td>
            </tr>
            <tr>
              <td align="left">Track label</td>
              <td align="left">label</td>
              <td align="left">
                <xref target="tracklabel"/></td>
            </tr>
            <tr>
              <td align="left">Render group</td>
              <td align="left">renderGroup</td>
              <td align="left">
                <xref target="rendergroup"/></td>
            </tr>
            <tr>
              <td align="left">Alternate group</td>
              <td align="left">altGroup</td>
              <td align="left">
                <xref target="altgroup"/></td>
            </tr>
            <tr>
              <td align="left">Initialization ref</td>
              <td align="left">initRef</td>
              <td align="left">
                <xref target="initref"/></td>
            </tr>
            <tr>
              <td align="left">Dependencies</td>
              <td align="left">depends</td>
              <td align="left">
                <xref target="dependencies"/></td>
            </tr>
            <tr>
              <td align="left">Temporal ID</td>
              <td align="left">temporalId</td>
              <td align="left">
                <xref target="temporalid"/></td>
            </tr>
            <tr>
              <td align="left">Spatial ID</td>
              <td align="left">spatialId</td>
              <td align="left">
                <xref target="spatialid"/></td>
            </tr>
            <tr>
              <td align="left">Codec</td>
              <td align="left">codec</td>
              <td align="left">
                <xref target="codec"/></td>
            </tr>
            <tr>
              <td align="left">Mime type</td>
              <td align="left">mimeType</td>
              <td align="left">
                <xref target="mimetype"/></td>
            </tr>
            <tr>
              <td align="left">Framerate</td>
              <td align="left">framerate</td>
              <td align="left">
                <xref target="framerate"/></td>
            </tr>
            <tr>
              <td align="left">Timescale</td>
              <td align="left">timescale</td>
              <td align="left">
                <xref target="timescale"/></td>
            </tr>
            <tr>
              <td align="left">Maximum Bitrate</td>
              <td align="left">bitrate</td>
              <td align="left">
                <xref target="bitrate"/></td>
            </tr>
            <tr>
              <td align="left">Average Bitrate</td>
              <td align="left">avgBitrate</td>
              <td align="left">
                <xref target="averagebitrate"/></td>
            </tr>
            <tr>
              <td align="left">Maximum GOP Duration</td>
              <td align="left">maxGopDuration</td>
              <td align="left">
                <xref target="maximumgopduration"/></td>
            </tr>
            <tr>
              <td align="left">Maximum Group Duration</td>
              <td align="left">maxGroupDuration</td>
              <td align="left">
                <xref target="maximumgroupduration"/></td>
            </tr>
            <tr>
              <td align="left">Width</td>
              <td align="left">width</td>
              <td align="left">
                <xref target="width"/></td>
            </tr>
            <tr>
              <td align="left">Height</td>
              <td align="left">height</td>
              <td align="left">
                <xref target="height"/></td>
            </tr>
            <tr>
              <td align="left">Audio sample rate</td>
              <td align="left">samplerate</td>
              <td align="left">
                <xref target="audiosamplerate"/></td>
            </tr>
            <tr>
              <td align="left">Channel configuration</td>
              <td align="left">channelConfig</td>
              <td align="left">
                <xref target="channelconfiguration"/></td>
            </tr>
            <tr>
              <td align="left">Display width</td>
              <td align="left">displayWidth</td>
              <td align="left">
                <xref target="displaywidth"/></td>
            </tr>
            <tr>
              <td align="left">Display height</td>
              <td align="left">displayHeight</td>
              <td align="left">
                <xref target="displayheight"/></td>
            </tr>
            <tr>
              <td align="left">Language</td>
              <td align="left">lang</td>
              <td align="left">
                <xref target="language"/></td>
            </tr>
            <tr>
              <td align="left">Parent name</td>
              <td align="left">parentName</td>
              <td align="left">
                <xref target="parentname"/></td>
            </tr>
            <tr>
              <td align="left">Parent namespace</td>
              <td align="left">parentNamespace</td>
              <td align="left">
                <xref target="parentnamespace"/></td>
            </tr>
            <tr>
              <td align="left">Track duration</td>
              <td align="left">trackDuration</td>
              <td align="left">
                <xref target="trackduration"/></td>
            </tr>
            <tr>
              <td align="left">Authorization Info</td>
              <td align="left">authInfo</td>
              <td align="left">
                <xref target="authinfo"/></td>
            </tr>
            <tr>
              <td align="left">Accessibility</td>
              <td align="left">accessibility</td>
              <td align="left">
                <xref target="accessibility"/></td>
            </tr>
          </tbody>
        </table>
        <section anchor="trackobject">
          <name>Tracks object</name>
          <t>A track object is a JSON Object containing a collection of fields whose location
is specified in Table 2.</t>
        </section>
        <section anchor="tracknamespace">
          <name>Track namespace</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>The name space under which the track name is defined. See section 2.3 of
<xref target="MoQTransport"/>. The track namespace is optional. If it is not declared within
a track, then each track <bcp14>MUST</bcp14> inherit the namespace of the catalog track. A
namespace declared in a track object overrides any inherited name space.</t>
        </section>
        <section anchor="trackname">
          <name>Track name</name>
          <t>Required: Yes    JSON Type: String    Location: Track Object</t>
          <t>A string defining the name of the track. See section 2.3 of <xref target="MoQTransport"/>.
Within the catalog, track names <bcp14>MUST</bcp14> be unique per namespace.</t>
        </section>
        <section anchor="packaging">
          <name>Packaging</name>
          <t>Required: Yes    JSON Type: String    Location: Track Object</t>
          <t>A string defining the type of payload encapsulation. Allowed values are strings
as defined in Table 3.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">LOC</td>
                <td align="left">loc</td>
                <td align="left">See RFC XXXX</td>
              </tr>
              <tr>
                <td align="left">Media Timeline</td>
                <td align="left">mediatimeline</td>
                <td align="left">See <xref target="mediatimelinetrack"/></td>
              </tr>
              <tr>
                <td align="left">Event Timeline</td>
                <td align="left">eventtimeline</td>
                <td align="left">See <xref target="eventtimelinetrack"/></td>
              </tr>
              <tr>
                <td align="left">MoQ Log</td>
                <td align="left">moqlog</td>
                <td align="left">See <xref target="MOQLOG"/></td>
              </tr>
              <tr>
                <td align="left">MoQ Metrics</td>
                <td align="left">moqmetrics</td>
                <td align="left">See <xref target="MOQMETRICS"/></td>
              </tr>
            </tbody>
          </table>
          <t>Table 3: Allowed packaging values</t>
        </section>
        <section anchor="eventtype">
          <name>Event timeline type</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A String defining the type &amp; structure of the data contained within the data
field of the Event timeline track. Types are defined by the application provider
and are not centrally registered. Implementers are encouraged to use a unique
naming scheme, such as Reverse Domain Name Notation, where domain name components are listed in reverse order (e.g., "com.example.myeventtype"), to avoid naming collisions.
This field is required if the <xref target="packaging"/> value is "eventtimeline".
This field <bcp14>MUST NOT</bcp14> be used if the packaging value is not "eventtimeline".</t>
        </section>
        <section anchor="trackrole">
          <name>Track role</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the role of content carried by the track. Specified roles
are described in Table 4. These role values are case-sensitive.</t>
          <t>This role field <bcp14>MAY</bcp14> be used in conjunction with the Mimetype <xref target="mimetype"/> to
fully describe the content of the track.</t>
          <t>Table 4: Reserved track roles</t>
          <table>
            <thead>
              <tr>
                <th align="left">Role</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">audiodescription</td>
                <td align="left">An audio description for visually impaired users</td>
              </tr>
              <tr>
                <td align="left">video</td>
                <td align="left">Visual content</td>
              </tr>
              <tr>
                <td align="left">audio</td>
                <td align="left">Audio content</td>
              </tr>
              <tr>
                <td align="left">mediatimeline</td>
                <td align="left">An MSF media timeline <xref target="mediatimelinetrack"/></td>
              </tr>
              <tr>
                <td align="left">eventtimeline</td>
                <td align="left">An MSF event timeline <xref target="eventtimelinetrack"/></td>
              </tr>
              <tr>
                <td align="left">caption</td>
                <td align="left">A textual representation of the audio track</td>
              </tr>
              <tr>
                <td align="left">subtitle</td>
                <td align="left">A transcription of the spoken dialogue</td>
              </tr>
              <tr>
                <td align="left">signlanguage</td>
                <td align="left">A visual track for hearing impaired users.</td>
              </tr>
              <tr>
                <td align="left">log</td>
                <td align="left">A log publishing track per <xref target="MOQLOG"/>.</td>
              </tr>
              <tr>
                <td align="left">metrics</td>
                <td align="left">A metrics publishing track per <xref target="MOQMETRICS"/>.</td>
              </tr>
            </tbody>
          </table>
          <t>Custom roles <bcp14>MAY</bcp14> be used as long as they do not collide with the specified roles.</t>
        </section>
        <section anchor="islive">
          <name>Is Live</name>
          <t>Required: Yes    JSON Type: Boolean    Location: Track Object</t>
          <t>A track-level indication of whether new Objects will be added to this specific track.
True if new Objects will be added to the track.
False if no new Objects will be added to the track. A False value is sent under two
possible conditions:
* the publisher of a previously live track has ended the track.
* the track is Video-On-Demand (VOD) and was never live.
A True value <bcp14>MUST</bcp14> never follow a False value.</t>
        </section>
        <section anchor="targetlatency">
          <name>Target latency</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>The target latency in milliseconds. Target latency is defined as the offset in
wallclock time between when content was encoded and when it is displayed to the
end user. For example, if a frame of video is encoded at 10:08:32.638 UTC and the
target latency is 5000, then that frame should be rendered to the end-user at
10:08:37.638 UTC. If isLive is FALSE, this field <bcp14>MUST</bcp14> be ignored. All tracks
belonging to the same render group <bcp14>MUST</bcp14> have identical target latencies. All tracks
belonging to the same alternate group <bcp14>MUST</bcp14> have identical target latencies. If this
field is absent from the track definition, and isLive is TRUE, then the player
<bcp14>MAY</bcp14> choose the latency with which it renders the content.</t>
          <t>This property <bcp14>MUST NOT</bcp14> be present if the buffers <xref target="buffers"/> property
is present within a track definition.</t>
        </section>
        <section anchor="buffers">
          <name>Buffers</name>
          <t>Required: Optional    JSON Type: Object   Location: Track Object</t>
          <t>An object defining a set of target buffers. Buffer is defined as the duration of
media data that <bcp14>MUST</bcp14> be buffered before decoding commences. This is typically known
as a forward or jitter-buffer in a media player.Players with identical buffer lengths
are likely to be synchronized. The target buffer object has these keys:</t>
          <ul spacing="normal">
            <li>
              <t>target : defines the target buffer in integer milliseconds. Players <bcp14>SHOULD</bcp14> attempt
to stabilize playback at this value.</t>
            </li>
            <li>
              <t>min : defines the minimum buffer in milliseconds. Players <bcp14>SHOULD NOT</bcp14> operate below
this value.</t>
            </li>
            <li>
              <t>max : defines the maximum buffer in milliseconds. Players <bcp14>SHOULD NOT</bcp14> operate above
this value.</t>
            </li>
          </ul>
          <t>Keys are optional. Unknown keys in the target buffer object <bcp14>MUST</bcp14> be ignored.</t>
          <t>If isLive is FALSE, this target buffer property <bcp14>MUST</bcp14> be ignored. All tracks
belonging to the same render group <bcp14>MUST</bcp14> have identical target buffers. All tracks
belonging to the same alternate group <bcp14>MUST</bcp14> have identical target buffers. If this
field is absent from the track definition, and isLive is TRUE, then the player
<bcp14>MAY</bcp14> choose the buffers with which it conducts playback.</t>
          <t>This property <bcp14>MUST NOT</bcp14> be present if the target latency <xref target="targetlatency"/> property
is present within a track definition.</t>
        </section>
        <section anchor="tracklabel">
          <name>Track label</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining a human-readable label for the track. Examples might be
"Overhead camera view" or "Deutscher Kommentar". Note that the <xref target="JSON"/> spec
requires UTF-8 support by decoders.</t>
        </section>
        <section anchor="rendergroup">
          <name>Render group</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>An integer specifying a group of tracks which are designed to be rendered
together. Tracks with the same group number <bcp14>SHOULD</bcp14> be rendered simultaneously
and are designed to accompany one another. A common example would be tying
together audio and video tracks.</t>
        </section>
        <section anchor="altgroup">
          <name>Alternate group</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>An integer specifying a group of tracks which are alternate versions of
one-another. Alternate tracks represent the same media content, but differ in
their selection properties. Alternate tracks <bcp14>MUST</bcp14> have matching media time
sequences. A subscriber typically subscribes to one track from a set of
tracks specifying the same alternate group number. A common example would be
a set video tracks of the same content offered in alternate bitrates.</t>
        </section>
        <section anchor="initref">
          <name>Initialization reference</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string pointing at the id field of an entry in the Initialization
Data List <xref target="initdatalist"/>.</t>
        </section>
        <section anchor="dependencies">
          <name>Dependencies</name>
          <t>Required: Optional    JSON Type: Array    Location: Track Object</t>
          <t>Certain tracks may depend on other tracks for decoding. Dependencies holds an
array of track names <xref target="trackname"/> on which the current track is dependent.
Since only the track name is signaled, the namespace of the dependencies is
assumed to match that of the track declaring the dependencies.</t>
        </section>
        <section anchor="template">
          <name>Template</name>
          <t>Required: Optional   JSON Type: Array    Location: Track Object</t>
          <t>A media timeline template for tracks with fixed-duration segments. It specifies
the relationship between media time, MOQT Location, and wallclock time through
starting points and intervals. See <xref target="mediatimelinetemplate"/> for the complete
format specification, field definitions, and computation formulas.</t>
          <t>Tracks that include a template field <bcp14>SHOULD NOT</bcp14> also have a separate media timeline
track, as the template provides equivalent functionality. Different tracks (e.g.,
audio and video) <bcp14>MAY</bcp14> have independent template values to accommodate different
group durations.</t>
        </section>
        <section anchor="temporalid">
          <name>Temporal ID</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number identifying the temporal layer/sub-layer encoding of the track,
starting with 0 for the base layer, and increasing by 1 for the next higher
temporal fidelity.</t>
        </section>
        <section anchor="spatialid">
          <name>Spatial ID</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number identifying the spatial layer encoding of the track, starting with 0
for the base layer, and increasing by 1 for the next higher fidelity.</t>
        </section>
        <section anchor="codec">
          <name>Codec</name>
          <t>Required: Conditional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the codec used to encode the track.
For LOC packaged content, the string codec registrations are defined in Sect 3
and Section 4 of <xref target="WEBCODECS-CODEC-REGISTRY"/>.
This property <bcp14>MUST</bcp14> be specified for tracks which have an inherent codec
associated with them (e.g., audio and video tracks). It is not required for
raw data tracks or event streams.</t>
        </section>
        <section anchor="mimetype">
          <name>Mimetype</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the mime type <xref target="MIME"/> of the track.</t>
        </section>
        <section anchor="framerate">
          <name>Framerate</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number defining the framerate of the track, expressed as frames per second.
This property <bcp14>SHOULD</bcp14> only accompany video or other frame-based content.</t>
        </section>
        <section anchor="timescale">
          <name>Timescale</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>The number of time units that pass per second.</t>
        </section>
        <section anchor="bitrate">
          <name>Maximum Bitrate</name>
          <t>Required: Conditional    JSON Type: Number    Location: Track Object</t>
          <t>A number defining the maximum bitrate of the track, expressed in bits per second.
This property <bcp14>MUST</bcp14> be specified for audio and video tracks.</t>
        </section>
        <section anchor="averagebitrate">
          <name>Average Bitrate</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number defining the average bitrate of the track, over the lifetime of the track,
expressed in bits per second.</t>
        </section>
        <section anchor="maximumgopduration">
          <name>Maximum GOP Duration</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number defining the maximum duration, expressed in milliseconds, between
successive independently decodable points (random access points) in the media
track. This property <bcp14>SHOULD</bcp14> only accompany video tracks.</t>
        </section>
        <section anchor="maximumgroupduration">
          <name>Maximum Group Duration</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number defining the maximum duration, expressed in milliseconds, of any MOQT Group
in this track. This value helps subscribers estimate buffer requirements for the track.</t>
        </section>
        <section anchor="width">
          <name>Width</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number expressing the maximum encoded width of the video frames in pixels.
This property <bcp14>SHOULD</bcp14> accompany tracks which have a visual representation.</t>
        </section>
        <section anchor="height">
          <name>Height</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number expressing the maximum encoded height of the video frames in pixels.
This property <bcp14>SHOULD</bcp14> accompany tracks which have a visual representation.</t>
        </section>
        <section anchor="audiosamplerate">
          <name>Audio sample rate</name>
          <t>Required: Conditional  JSON Type: Number    Location: Track Object</t>
          <t>The number of audio frame samples per second. This property <bcp14>MUST</bcp14>
accompany tracks for which audio codecs are specified.</t>
        </section>
        <section anchor="channelconfiguration">
          <name>Channel configuration</name>
          <t>Required: Conditional    JSON Type: String    Location: Track Object</t>
          <t>A string specifying the audio channel configuration. A string is used in order
to provide the flexibility to describe complex channel configurations for
multi-channel and Next Generation Audio schemas. This property <bcp14>MUST</bcp14> accompany
tracks for which audio codecs are specified.</t>
        </section>
        <section anchor="displaywidth">
          <name>Display width</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number expressing the intended display width of the track content in pixels.
This property <bcp14>SHOULD</bcp14> only accompany tracks which have a visual representation.</t>
        </section>
        <section anchor="displayheight">
          <name>Display height</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>A number expressing the intended display height of the track content in pixels.
This property <bcp14>SHOULD</bcp14> only accompany tracks which have a visual representation.</t>
        </section>
        <section anchor="language">
          <name>Language</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the dominant language of the track. The string <bcp14>MUST</bcp14> be one of
the standard Tags for Identifying Languages as defined by <xref target="LANG"/>.</t>
        </section>
        <section anchor="parentname">
          <name>Parent name</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the parent track name <xref target="trackname"/> to be cloned. This field
<bcp14>MUST</bcp14> only be included inside a clone operation in a delta update <xref target="deltaupdate"/>.</t>
        </section>
        <section anchor="parentnamespace">
          <name>Parent namespace</name>
          <t>Required: Optional    JSON Type: String    Location: Track Object</t>
          <t>A string defining the parent track namespace <xref target="tracknamespace"/> to be cloned. This field
<bcp14>MUST</bcp14> only be included inside a clone operation in a delta update <xref target="deltaupdate"/>. If this
field is missing from a clone operation, then the namespace of the catalog is assumed.</t>
        </section>
        <section anchor="trackduration">
          <name>Track duration</name>
          <t>Required: Optional    JSON Type: Number    Location: Track Object</t>
          <t>The duration of the track expressed in integer milliseconds. This field <bcp14>MUST NOT</bcp14>
be included if the isLive <xref target="islive"/> field value is true.</t>
        </section>
        <section anchor="connectionuri">
          <name>Connection URI</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A string containing the MOQT connection endpoint URI for the publish track. When
specified, the subscriber <bcp14>MUST</bcp14> establish a new MOQT connection to this URI for
publishing the track data. If this field is absent, the subscriber <bcp14>SHOULD</bcp14> reuse
the existing MOQT connection that was used to receive the catalog.</t>
          <t>The URI <bcp14>MUST</bcp14> be a valid MOQT endpoint URI as defined by <xref target="MoQTransport"/> (Sect 3.1.1). Examples include
"moqt://logs.example.com:4443", "moqt://metrics.example.com:8443", or
"https://logs.example.com/moqt".</t>
        </section>
        <section anchor="token">
          <name>Token</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A string containing an authentication token or credential for the track. For
publish tracks, this token authorizes the subscriber to publish data to the
specified track. The format and validation of the token is application-specific.</t>
        </section>
        <section anchor="encryptionscheme">
          <name>Encryption scheme</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A string identifying the encryption scheme used to protect the track content.
The default and <bcp14>RECOMMENDED</bcp14> value is "moq-secure-objects" as defined in
<xref target="SecureObjects"/>. If this field is absent, the track content is unencrypted.</t>
          <t>Table 5: Registered encryption schemes</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">MoQ Secure Objects</td>
                <td align="left">moq-secure-objects</td>
                <td align="left">
                  <xref target="SecureObjects"/></td>
              </tr>
            </tbody>
          </table>
          <t>Custom encryption schemes <bcp14>MAY</bcp14> be used. Custom scheme names <bcp14>SHOULD</bcp14> use Reverse
Domain Name Notation to avoid collisions (e.g., "com.example.custom-encryption").</t>
        </section>
        <section anchor="ciphersuite">
          <name>Cipher suite</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A string identifying the AEAD cipher suite used for encryption. This field
<bcp14>MUST</bcp14> be present when encryptionScheme is specified. For the "moq-secure-objects"
scheme, the following cipher suites are defined:</t>
          <t>Table 6: Cipher suites for moq-secure-objects</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Value</th>
                <th align="left">Tag Size</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">AES-128-GCM-SHA256</td>
                <td align="left">aes-128-gcm-sha256</td>
                <td align="left">128 bits</td>
              </tr>
              <tr>
                <td align="left">AES-256-GCM-SHA512</td>
                <td align="left">aes-256-gcm-sha512</td>
                <td align="left">128 bits</td>
              </tr>
              <tr>
                <td align="left">AES-128-CTR-HMAC-SHA256-80</td>
                <td align="left">aes-128-ctr-hmac-sha256-80</td>
                <td align="left">80 bits</td>
              </tr>
            </tbody>
          </table>
          <t>Implementations <bcp14>MUST</bcp14> support "aes-128-gcm-sha256". Implementations <bcp14>SHOULD</bcp14>
support "aes-128-ctr-hmac-sha256-80" for scenarios requiring smaller
authentication tags.</t>
        </section>
        <section anchor="keyid">
          <name>Key ID</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A string identifying the key material used for encryption. This value is
transmitted in the Secure Object KID extension header as defined in
(<xref section="4.2" sectionFormat="comma" target="SecureObjects"/>) of each encrypted object.</t>
          <t>The keyId and associated trackBaseKey are obtained from an external key
management system. The mechanism for obtaining these values is out of scope
for this specification. Examples include MLS-based key distribution
<xref target="E2EE-MLS"/> or other out-of-band key exchange mechanisms.</t>
          <t>The scope of a keyId is determined by the key management system in use. A
keyId <bcp14>MAY</bcp14> be scoped to a single track, a single MSF session, or multiple
tracks and sessions. When multiple tracks share the same Key ID, they <bcp14>MAY</bcp14>
share the same base key material, though per-track keys are derived using
the track name as defined in (<xref section="5" sectionFormat="comma" target="SecureObjects"/>).</t>
        </section>
        <section anchor="trackbasekey">
          <name>Track Base Key</name>
          <t>Required: Optional   JSON Type: String    Location: Track Object</t>
          <t>A base64-encoded <xref target="BASE64"/> string containing the base key material for this
track, as defined in (<xref section="5" sectionFormat="comma" target="SecureObjects"/>). This field works in
conjunction with keyId to provide the cryptographic material needed for
decryption. The trackBaseKey is obtained from the same key management system
that provides the keyId.</t>
          <t>When present, this field contains the raw key material that, together with
the track name and other parameters defined in (<xref section="5" sectionFormat="comma" target="SecureObjects"/>),
is used to derive the actual encryption keys. Publishers and subscribers <bcp14>MUST</bcp14>
use matching trackBaseKey values for successful decryption.</t>
        </section>
        <section anchor="authinfo">
          <name>Authorization Info</name>
          <t>Required: Optional   JSON Type: Object    Location: Track Object</t>
          <t>An object indicating that authorization is required to access this track.
The presence of this field signals to subscribers that they must obtain
and present valid authorization tokens when subscribing to this track.</t>
          <t>The keys of this object are authorization scheme identifiers. Registered
schemes are defined in Table 7. The values are scheme-specific configuration
objects defined by the referenced specifications.</t>
          <t>Table 7: Registered Authorization Schemes</t>
          <table>
            <thead>
              <tr>
                <th align="left">Scheme</th>
                <th align="left">Value</th>
                <th align="left">Reference</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Privacy Pass</td>
                <td align="left">privacy-pass</td>
                <td align="left">
                  <xref target="PrivacyPassAuth"/></td>
              </tr>
              <tr>
                <td align="left">CAT</td>
                <td align="left">cat</td>
                <td align="left">
                  <xref target="C4M"/></td>
              </tr>
            </tbody>
          </table>
          <t>Custom authorization schemes <bcp14>MAY</bcp14> be used. Custom scheme names <bcp14>MUST</bcp14> use a
unique naming convention, such as Reverse Domain Name Notation
(e.g., "com.example.custom-auth"), to avoid naming collisions.</t>
          <t>Subscribers inspect the authInfo field to determine which authorization
scheme to use and then obtain tokens through out-of-band mechanisms.
The specific token format, acquisition process, and presentation method
are defined by the authorization scheme specification.</t>
        </section>
        <section anchor="tokendelivery">
          <name>Token Delivery via URI</name>
          <t>Tokens can be delivered to subscribers through the catalog request URI using
variable substitution. Fragment parameters (following the <tt>#</tt> character) are
processed client-side and can be substituted into catalog fields using the
variable substitution mechanism defined in <xref target="variablesubstitution"/>.</t>
          <t>For example, given a URI:</t>
          <artwork><![CDATA[
moqt://relay.example.com/live#namespace--name&token=XYZ789
]]></artwork>
          <t>A catalog with:</t>
          <sourcecode type="json"><![CDATA[
"authInfo": {
  "cat": "%token%"
}
]]></sourcecode>
          <t>Would be resolved by the subscriber to include <tt>"cat": "XYZ789"</tt>, which is
then presented in control messages as specified by the authorization scheme.</t>
        </section>
        <section anchor="accessibility">
          <name>Accessibility</name>
          <t>Required: Optional   JSON Type: Array  Location: Track Object</t>
          <t>An array of accessibility descriptors indicating accessibility features
embedded within the track. Each descriptor is a JSON Object containing:</t>
          <ul spacing="normal">
            <li>
              <t>A required 'scheme' field (String) identifying the accessibility scheme.</t>
            </li>
            <li>
              <t>A required 'value' field (String) specifying the accessibility channels
or features available.</t>
            </li>
          </ul>
          <t>Table 6: Registered accessibility schemes</t>
          <table>
            <thead>
              <tr>
                <th align="left">Scheme</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">urn:scte:dash:cc:cea-608:2015</td>
                <td align="left">CEA-608 closed captions</td>
              </tr>
              <tr>
                <td align="left">urn:scte:dash:cc:cea-708:2015</td>
                <td align="left">CEA-708 closed captions</td>
              </tr>
            </tbody>
          </table>
          <t>The 'value' field for CEA-608/708 schemes uses the format defined by
<xref target="SCTE214-1"/>, where caption service channels are specified as
semicolon-separated pairs of channel identifier and language code
(e.g., "CC1=eng;CC3=spa").</t>
          <t>A subscriber <bcp14>MAY</bcp14> use this information to determine caption availability
and configure an appropriate caption decoder.</t>
        </section>
      </section>
      <section anchor="deltaupdates">
        <name>Delta updates</name>
        <t>A catalog update might contain incremental changes. This is a useful property if
many tracks may be initially declared but then there are small changes to a
subset of tracks. The producer can issue a delta update to describe these changes.
Changes are described incrementally, meaning that a delta update can itself modify
a prior delta update.</t>
        <t>A restricted set of operations are allowed with each delta update:
* Add a new track that has not previously been declared.
* Add a new track by cloning a previously declared track.
* Remove a track that has been previously declared.</t>
        <t>The following rules are to be followed in constructing and processing delta updates:</t>
        <ul spacing="normal">
          <li>
            <t>A delta update <bcp14>MUST</bcp14> include the Delta Update <xref target="deltaupdate"/> field with at
least one operation. It <bcp14>MUST NOT</bcp14> contain an instance of a Tracks <xref target="tracks"/>
field or an MSF version <xref target="msfversion"/> field.</t>
          </li>
          <li>
            <t>Operations are applied sequentially in the order they appear in the deltaUpdate
array. Each operation is applied to the target document; the resulting document
becomes the target of the next operation. Evaluation continues until all
operations are successfully applied.</t>
          </li>
          <li>
            <t>The tuple of Track Namespace and Track Name defines a fixed set of Track attributes
which <bcp14>MUST NOT</bcp14> be modified after being declared. To modify any attribute, a new
track with a different Namespace|Name tuple is created by Adding or Cloning and then
the old track is removed.</t>
          </li>
          <li>
            <t>Producers that publish frequent delta updates <bcp14>SHOULD</bcp14> periodically publish a new
independent catalog in a new MOQT Group in order to bound the amount of delta
processing required for joining subscribers.</t>
          </li>
        </ul>
      </section>
      <section anchor="variablesubstitution">
        <name>Variable Substitution</name>
        <t>Catalog field values <bcp14>MAY</bcp14> contain variables that are substituted at delivery time.
This mechanism enables a single cached catalog to be customized for each viewer,
supporting use cases such as personalized advertising, A/B watermarking, QoE
reporting endpoints, and logging identifiers.</t>
        <section anchor="variablesyntax">
          <name>Variable Syntax</name>
          <t>Variables are denoted by enclosing the variable name in percent characters (<tt>%</tt>).
Variable names <bcp14>MUST</bcp14> consist of alphanumeric characters, hyphens, and underscores.
Variable names are case-sensitive.</t>
          <t>The percent character (<tt>%</tt>) <bcp14>MUST NOT</bcp14> appear in catalog field values except as
part of a variable reference. Literal percent characters are not permitted.</t>
          <t>Variable values <bcp14>MUST</bcp14> consist only of alphanumeric characters, hyphens, underscores,
and the at sign (<tt>@</tt>). Special characters including commas, semicolons, quotes,
ampersands, and other punctuation <bcp14>MUST NOT</bcp14> appear in variable values. This
restriction prevents injection attacks and ensures safe substitution into
catalog field values.</t>
        </section>
        <section anchor="variableresolution">
          <name>Variable Resolution</name>
          <t>Variables are resolved from the fragment identifier of the URI used to access
the catalog. The fragment identifier is the portion following the <tt>#</tt> character
and is processed entirely client-side, making it suitable for per-viewer
customization without affecting server-side caching.</t>
          <t>Query parameters (following the <tt>?</tt> character) are reserved for server-side
processing and <bcp14>MUST NOT</bcp14> be used for variable substitution.</t>
          <t>When a subscriber requests a catalog using a URI containing a fragment identifier,
the fragment is parsed as key-value pairs (using <tt>&amp;</tt> as delimiter and <tt>=</tt> as
separator). Each key becomes available as a variable name, and the variable
is replaced with the corresponding value.</t>
        </section>
      </section>
      <section anchor="catalog-compression">
        <name>Catalog Compression</name>
        <t>Catalogs can contain significant redundancy, particularly when initialization
data is included. To reduce payload size, catalog objects <bcp14>MAY</bcp14> be compressed
using the MSF_COMPRESSION property (<xref target="compression-signaling"/>). If all catalog
objects are compressed, the track property (<xref target="compression-track-property"/>) is
used. If only some catalog objects are compressed (for example, the complete
catalog is compressed while delta updates are not), the object property
(<xref target="compression-object-property"/>) is used on each compressed object.</t>
      </section>
      <section anchor="catalog-examples">
        <name>Catalog Examples</name>
        <t>The following section provides non-normative JSON examples of various catalogs
compliant with this draft.</t>
        <section anchor="time-aligned-audiovideo-tracks-with-single-quality">
          <name>Time-aligned Audio/Video Tracks with single quality</name>
          <t>This example shows a catalog for a media producer capable of sending LOC
packaged, time-aligned audio and video tracks.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "1080p-video",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "framerate":30,
      "bitrate":1500000
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="simulcast-video-tracks-3-alternate-qualities-along-with-audio">
          <name>Simulcast video tracks - 3 alternate qualities along with audio</name>
          <t>This example shows a catalog for a media producer capable of sending 3
time-aligned video tracks for high definition, low definition and medium
definition video qualities, along with an audio track. In this example the
namespace is absent, which infers that each track must inherit the namespace
of the catalog.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks":[
    {
      "name": "hd",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 1500,
      "role": "video",
      "codec":"av01",
      "width":1920,
      "height":1080,
      "bitrate":5000000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "md",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 1500,
      "role": "video",
      "codec":"av01",
      "width":720,
      "height":640,
      "bitrate":3000000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "sd",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 1500,
      "role": "video",
      "codec":"av01",
      "width":192,
      "height":144,
      "bitrate":500000,
      "framerate":30,
      "altGroup":1
    },
    {
      "name": "audio",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 1500,
      "role": "audio",
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="svc-video-tracks-with-2-spatial-and-2-temporal-qualities">
          <name>SVC video tracks with 2 spatial and 2 temporal qualities</name>
          <t>This example shows a catalog for a media producer capable
of sending scalable video codec with 2 spatial and 2 temporal
layers with a dependency relation as shown below:</t>
          <sourcecode type="ascii-figure"><![CDATA[
                  +----------+
     +----------->|  S1T1    |
     |            | 1080p30  |
     |            +----------+
     |                  ^
     |                  |
+----------+            |
|  S1TO    |            |
| 1080p15  |            |
+----------+      +-----+----+
      ^           |  SOT1    |
      |           | 480p30   |
      |           +----------+
      |               ^
+----------+          |
|  SOTO     |         |
| 480p15    |---------+
+----------+
]]></sourcecode>
          <t>The corresponding catalog uses "depends" attribute to
express the track relationships.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks":[
    {
      "name": "480p15",
      "namespace": "conference.example.com/conference123/alice",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000},
      "role": "video",
      "codec":"av01.0.01M.10.0.110.09",
      "width":640,
      "height":480,
      "bitrate":3000000,
      "framerate":15
    },
    {
      "name": "480p30",
      "namespace": "conference.example.com/conference123/alice",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000},
      "role": "video",
      "codec":"av01.0.04M.10.0.110.09",
      "width":640,
      "height":480,
      "bitrate":3000000,
      "framerate":30,
      "depends": ["480p15"]
    },
    {
      "name": "1080p15",
      "namespace": "conference.example.com/conference123/alice",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000},
      "role": "video",
      "codec":"av01.0.05M.10.0.110.09",
      "width":1920,
      "height":1080,
      "bitrate":3000000,
      "framerate":15,
      "depends":["480p15"]
    },

    {
      "name": "1080p30",
      "namespace": "conference.example.com/conference123/alice",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000},
      "role": "video",
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "bitrate":5000000,
      "framerate":30,
      "depends": ["480p30", "1080p15"]
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "renderGroup": 1,
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000},
      "role": "audio",
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}
]]></sourcecode>
        </section>
        <section anchor="delta-update-adding-two-tracks">
          <name>Delta update  - adding two tracks</name>
          <t>This example shows the catalog delta update for a media producer adding
two tracks to an established video conference. One track is newly declared,
the other is cloned from a previous track.</t>
          <sourcecode type="json"><![CDATA[
{
  "generatedAt": 1746104606044,
  "deltaUpdate": [
    {
      "op": "add",
      "tracks": [
        {
          "name": "slides",
          "isLive": true,
          "role": "video",
          "codec": "av01.0.08M.10.0.110.09",
          "width": 1920,
          "height": 1080,
          "framerate": 15,
          "bitrate": 750000,
          "renderGroup": 1
        }
      ]
    },
    {
      "op": "clone",
      "tracks": [
        {
          "parentName": "video-1080",
          "parentNamespace": "example.com/custom",
          "name": "video-720",
          "width": 1280,
          "height": 720,
          "bitrate": 600000
        }
      ]
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="delta-update-removing-tracks">
          <name>Delta update removing tracks</name>
          <t>This example shows a delta update for a media producer removing two tracks
from an established video conference.</t>
          <sourcecode type="json"><![CDATA[
{
  "generatedAt": 1746104606044,
  "deltaUpdate": [
    {
      "op": "remove",
      "tracks": [{"name": "video"}, {"name": "slides"}]
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="time-aligned-audiovideo-tracks-with-custom-field-values">
          <name>Time-aligned Audio/Video Tracks with custom field values</name>
          <t>This example shows a catalog for a media producer capable of sending LOC packaged,
time-aligned audio and video tracks along with custom fields in each track
description.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "1080p-video",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000, "min": 1500, "max": 5000},
      "role": "video",
      "renderGroup": 1,
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "framerate":30,
      "bitrate":1500000,
      "com.example-billing-code": 3201,
      "com.example-tier": "premium",
      "com.example-debug": "h349835bfkjfg82394d945034jsdfn349fns"
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "buffers": {"target":2000, "min": 1500, "max": 5000},
      "role": "audio",
      "renderGroup": 1,
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="time-aligned-vod-audiovideo-tracks">
          <name>Time-aligned VOD Audio/Video Tracks</name>
          <t>This example shows a catalog for a media producer offering VOD (video on-demand)
non-live content. The content is LOC packaged, and includes time-aligned audio
and video tracks.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "tracks": [
    {
      "name": "video",
      "namespace": "movies.example.com/assets/boy-meets-girl-season3/episode5",
      "packaging": "loc",
      "isLive": false,
      "trackDuration": 8072340,
      "renderGroup": 1,
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "framerate":30,
      "bitrate":1500000
    },
    {
      "name": "audio",
      "namespace": "movies.example.com/assets/boy-meets-girl-season3/episode5",
      "packaging": "loc",
      "isLive": false,
      "trackDuration": 8072340,
      "renderGroup": 1,
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="encrypted-audiovideo-tracks">
          <name>Encrypted Audio/Video Tracks</name>
          <t>This example shows a catalog for encrypted LOC-packaged audio and video
tracks using MoQ Secure Objects with AES-128-GCM.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "1080p-video",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "codec": "av01.0.08M.10.0.110.09",
      "width": 1920,
      "height": 1080,
      "framerate": 30,
      "bitrate": 1500000,
      "encryptionScheme": "moq-secure-objects",
      "cipherSuite": "aes-128-gcm-sha256",
      "keyId": "key-2024-q1-premium",
      "trackBaseKey": "dGhpc2lzYXNhbXBsZWJhc2VrZXk="
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "codec": "opus",
      "samplerate": 48000,
      "channelConfig": "2",
      "bitrate": 32000,
      "encryptionScheme": "moq-secure-objects",
      "cipherSuite": "aes-128-gcm-sha256",
      "keyId": "key-2024-q1-premium",
      "trackBaseKey": "dGhpc2lzYXNhbXBsZWJhc2VrZXk="
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="media-timeline-and-event-timeline">
          <name>Media timeline and Event timeline</name>
          <t>This example shows a catalog for a media producer capable of sending LOC
packaged, time-aligned audio and video tracks, along with a Media Timeline
which describes the history of those tracks and an Event Timeline providing
synchronized data.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "history",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "mediatimeline",
      "mimetype": "application/json",
      "depends": ["1080p-video","audio"]
    },
    {
      "name": "identified-objects",
      "namespace": "another-provider/time-synchronized-data",
      "packaging": "eventtimeline",
      "eventType": "com.ai-extraction/appID/v3",
      "mimetype": "application/json",
      "depends": ["1080p-video"]
    },
    {
      "name": "1080p-video",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "framerate":30,
      "bitrate":1500000
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="media-timeline-template">
          <name>Media timeline template</name>
          <t>This example shows a catalog using inline media timeline templates instead of an
explicit media timeline track. The <xref target="template"/> attribute on each track defines a
regular pattern where each segment is 2002ms long. Clients can compute any entry
using the template parameters. Note that different tracks <bcp14>MAY</bcp14> have different
template values to accommodate different group durations.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "1080p-video",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "template": [0, 2002, [0, 0], [1, 0], 1759924158381, 2002],
      "codec":"av01.0.08M.10.0.110.09",
      "width":1920,
      "height":1080,
      "framerate":30,
      "bitrate":1500000
    },
    {
      "name": "audio",
      "namespace": "conference.example.com/conference123/alice",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "template": [0, 2002, [0, 0], [1, 0], 1759924158381, 2002],
      "codec":"opus",
      "samplerate":48000,
      "channelConfig":"2",
      "bitrate":32000
    }
   ]
}

]]></sourcecode>
        </section>
        <section anchor="video-track-with-embedded-captions-and-scte-35-events">
          <name>Video track with embedded captions and SCTE-35 events</name>
          <t>This example shows a live broadcast with CEA-608 closed captions embedded
in the video track and a separate SCTE-35 event timeline for ad insertion.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "video",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 4000,
      "role": "video",
      "renderGroup": 1,
      "codec": "avc1.4d401f",
      "width": 1920,
      "height": 1080,
      "framerate": 30,
      "bitrate": 5000000,
      "accessibility": [
        {
          "scheme": "urn:scte:dash:cc:cea-608:2015",
          "value": "CC1=eng;CC3=spa"
        }
      ]
    },
    {
      "name": "audio",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 4000,
      "role": "audio",
      "renderGroup": 1,
      "codec": "opus",
      "samplerate": 48000,
      "channelConfig": "2",
      "bitrate": 128000
    },
    {
      "name": "scte35",
      "packaging": "eventtimeline",
      "eventType": "urn:scte:scte35:2013:bin",
      "mimeType": "application/json",
      "isLive": true,
      "role": "eventtimeline",
      "depends": ["video"]
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="video-track-with-cea-708-captions">
          <name>Video track with CEA-708 captions</name>
          <t>This example shows a live broadcast with CEA-708 closed captions embedded
in the video track, demonstrating multiple caption services.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "video",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 4000,
      "role": "video",
      "renderGroup": 1,
      "codec": "hev1.1.6.L93.B0",
      "width": 1920,
      "height": 1080,
      "framerate": 30,
      "bitrate": 4000000,
      "accessibility": [
        {
          "scheme": "urn:scte:dash:cc:cea-708:2015",
          "value": "1=lang:eng;2=lang:spa;3=lang:fra"
        }
      ]
    },
    {
      "name": "audio",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 4000,
      "role": "audio",
      "renderGroup": 1,
      "codec": "mp4a.40.2",
      "samplerate": 48000,
      "channelConfig": "2",
      "bitrate": 128000
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="terminating-a-live-broadcast">
          <name>Terminating a live broadcast</name>
          <t>This example shows a catalog for a media producer terminating a previously
live broadcast containing a video and an audio track.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "isComplete": true,
  "tracks": []
}

]]></sourcecode>
        </section>
        <section anchor="variable-substitution-for-personalized-delivery">
          <name>Variable Substitution for personalized delivery</name>
          <t>This example shows a catalog using variable substitution to enable
personalized advertising and reporting while maintaining cacheability.
Given a catalog request URI of:</t>
          <artwork><![CDATA[
moqt://relay.example.com/sports/catalog?a=1#token=1234&id=bob&event=xyz
]]></artwork>
          <t>The fragment parameters (<tt>token</tt>, <tt>id</tt>, <tt>event</tt>) are available for variable
substitution. The following catalog template:</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "tracks": [
    {
      "name": "video",
      "packaging": "loc",
      "isLive": true,
      "role": "video",
      "renderGroup": 1
    },
    {
      "name": "cmcdv2-%id%",
      "namespace": "advertising-decisions/live-sports/%event%",
      "packaging": "eventtimeline",
      "eventType": "com.example.iab.vast",
      "c4m": "%token%"
    }
  ]
}
]]></sourcecode>
          <t>Would be resolved by the subscriber as:</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "tracks": [
    {
      "name": "video",
      "packaging": "loc",
      "isLive": true,
      "role": "video",
      "renderGroup": 1
    },
    {
      "name": "cmcdv2-bob",
      "namespace": "advertising-decisions/live-sports/xyz",
      "packaging": "eventtimeline",
      "eventType": "com.example.iab.vast",
      "c4m": "1234"
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="time-aligned-audiovideo-tracks-with-authorization">
          <name>Time-aligned Audio/Video Tracks with Authorization</name>
          <t>This example shows a catalog for a media producer requiring authorization
for premium content. The premium 4K track uses CAT authorization with a
token resolved via variable substitution from <tt>%cat-token%</tt>. The standard
720p track uses Privacy Pass with a token resolved from <tt>%pp-token%</tt>.
Token presentation timing is determined by the authorization scheme
specification.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "premium-4k-video",
      "namespace": "streaming.example.com/live/sports",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "codec": "av01.0.12M.10.0.110.09",
      "width": 3840,
      "height": 2160,
      "framerate": 60,
      "bitrate": 15000000,
      "authInfo": {
        "cat": "%cat-token%"
      }
    },
    {
      "name": "standard-720p-video",
      "namespace": "streaming.example.com/live/sports",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 2,
      "codec": "av01.0.05M.10.0.110.09",
      "width": 1280,
      "height": 720,
      "framerate": 30,
      "bitrate": 2500000,
      "authInfo": {
        "privacy-pass": "%pp-token%"
      }
    },
    {
      "name": "audio",
      "namespace": "streaming.example.com/live/sports",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "codec": "opus",
      "samplerate": 48000,
      "channelConfig": "2",
      "bitrate": 128000
    }
  ]
}
]]></sourcecode>
        </section>
        <section anchor="publish-tracks-for-logs-and-metrics">
          <name>Publish tracks for logs and metrics</name>
          <t>This example shows a catalog that includes publish tracks for client-side
logging and metrics collection. The subscriber can publish QoE data and logs
back to the delivery system using these track definitions. The namespace and
track name formats follow the conventions defined in <xref target="MOQLOG"/> and <xref target="MOQMETRICS"/>.</t>
          <sourcecode type="json"><![CDATA[
{
  "version": "1",
  "generatedAt": 1746104606044,
  "tracks": [
    {
      "name": "video",
      "namespace": "broadcast.example.com/live/stream1",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "video",
      "renderGroup": 1,
      "codec": "av01.0.08M.10.0.110.09",
      "width": 1920,
      "height": 1080,
      "framerate": 30,
      "bitrate": 1500000
    },
    {
      "name": "audio",
      "namespace": "broadcast.example.com/live/stream1",
      "packaging": "loc",
      "isLive": true,
      "targetLatency": 2000,
      "role": "audio",
      "renderGroup": 1,
      "codec": "opus",
      "samplerate": 48000,
      "channelConfig": "2",
      "bitrate": 32000
    }
  ],
  "publishTracks": [
    {
      "namespace": "moq://metrics.moq.arpa/v1/%resourceId%",
      "name": "4",
      "packaging": "moqmetrics",
      "role": "metrics",
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    },
    {
      "namespace": "moq://moq-syslog.arpa/logs-v1/%resourceId%",
      "name": "6",
      "packaging": "moqlog",
      "role": "log",
      "connectionUri": "moqt://logs.example.com:4443",
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    }
  ]
}

]]></sourcecode>
          <t>In this example:</t>
          <ul spacing="normal">
            <li>
              <t>The metrics track uses the namespace format defined in <xref target="MOQMETRICS"/> with
%resourceId% as a placeholder for the subscriber's unique resource identifier.
The track name "4" indicates Warning level granularity.</t>
            </li>
            <li>
              <t>The log track uses the namespace format defined in <xref target="MOQLOG"/> with %resourceId%
as a placeholder. The track name "6" indicates Informational level priority.
This track establishes a separate connection to logs.example.com.</t>
            </li>
            <li>
              <t>Both tracks include authentication tokens for publishing authorization.</t>
            </li>
            <li>
              <t>The subscriber <bcp14>MUST</bcp14> replace %resourceId% with their actual resource identifier
as defined in the respective specifications.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="media-transmission">
      <name>Media transmission</name>
      <t>The MOQT Groups and MOQT Objects need to be mapped to MOQT Streams. Irrespective
of the <xref target="mediapackaging"/> in place, each MOQT Object <bcp14>MUST</bcp14> be mapped to a new
MOQT Stream.</t>
      <section anchor="group-numbering">
        <name>Group numbering</name>
        <t>Group IDs for a track <bcp14>MUST</bcp14> be unique and <bcp14>MUST</bcp14> increase monotonically. Within a
continuous publishing session, each subsequent Group ID <bcp14>SHOULD</bcp14> increase by 1.</t>
        <t>When a publisher restarts (e.g., after connectivity loss or encoder restart), it
<bcp14>MUST</bcp14> ensure the new starting Group ID is greater than any previously published
Group ID for that track. One approach is to use the current wall clock time in
milliseconds since the Unix epoch as the starting Group ID.</t>
        <t>If a publisher maintains state across a restart and knows the previous Group ID,
it <bcp14>SHOULD</bcp14> signal the gap using the MOQT Prior Group ID Gap Extension header.</t>
      </section>
      <section anchor="object-numbering">
        <name>Object Numbering</name>
        <t>Object ID <bcp14>MUST</bcp14> be zero for the first Object within a Group and then <bcp14>MUST</bcp14> increase
monotonically by one within that Group.</t>
      </section>
    </section>
    <section anchor="mediatimelinetrack">
      <name>Media Timeline track</name>
      <t>The media timeline track provides data about the previously published Groups and their
relationship to wallclock time and media time. Media timeline tracks allow players to
seek to precise points behind the live head in a live broadcast, or for random access
in a VOD asset. Media timeline tracks are optional. Multiple media timeline tracks
can exist inside a catalog.</t>
      <section anchor="mediatimelinepayload">
        <name>Media Timeline track payload</name>
        <t>A media timeline track is a JSON <xref target="JSON"/> document. This document <bcp14>MAY</bcp14> be compressed
using the MSF_COMPRESSION property (<xref target="compression-signaling"/>). The document
supports two formats: an explicit entry format and a template format. Publishers
<bcp14>MAY</bcp14> combine both formats in a single document.</t>
        <section anchor="explicitentryformat">
          <name>Explicit entry format</name>
          <t>The explicit format contains an array of records. Each record consists of
an array of three required items, whose ordinal position defines their type:</t>
          <ul spacing="normal">
            <li>
              <t>The first item holds the media presentation timestamp, expressed as a JSON Number.
This value <bcp14>MUST</bcp14> match the media presentation timestamp, expressed as the floor in integral milliseconds, of the first media sample in the referenced Object. Implementers
who require increased time precision can parse the retrieved media object itself.</t>
            </li>
            <li>
              <t>The second item holds the MOQT Location of the entry, defined as a tuple of the MOQT
Group ID and MOQT Object ID, and expressed as a JSON Array of Numbers, where the
first number is the Group ID and the second number is the Object ID.</t>
            </li>
            <li>
              <t>The third item holds the wallclock time at which the media was encoded, defined as
the number of milliseconds that have elapsed since January 1, 1970
(midnight UTC/GMT) and expressed as a JSON Number. For VOD assets, or if the
wallclock time is not known, the value <bcp14>SHOULD</bcp14> be 0.</t>
            </li>
          </ul>
          <t>An example media timeline is shown below:</t>
          <sourcecode type="json"><![CDATA[
[
  [0, [0,0], 1759924158381],
  [2002, [1,0], 1759924160383],
  [4004, [2,0], 1759924162385],
  [6006, [3,0], 1759924164387],
  [8008, [4,0], 1759924166389]
]
]]></sourcecode>
        </section>
      </section>
      <section anchor="media-timeline-catalog-requirements">
        <name>Media Timeline Catalog requirements</name>
        <t>A media timeline track <bcp14>MUST</bcp14> carry a 'type' identifier in the Catalog with a value
of "mediatimeline". A media timeline track <bcp14>MUST</bcp14> carry a 'depends' attribute which
contains an array of all track names to which the media timeline track applies.
The mime-type of a media timeline track <bcp14>MUST</bcp14> be specified as "application/json".</t>
      </section>
      <section anchor="media-timeline-track-updating">
        <name>Media Timeline track updating</name>
        <t>The publisher <bcp14>MUST</bcp14> publish an independent media timeline in the first MOQT Object
of each MOQT Group of a media timeline track. An independent media timeline object
<bcp14>MUST</bcp14> contain all media timeline records accumulated and accessible up to that point, allowing a
subscriber joining at any group boundary to receive the accessible timeline history.
The publisher <bcp14>MAY</bcp14> publish incremental updates in the second and subsequent Objects
within each Group. Incremental updates contain only new media timeline records since
the previous media timeline Object in that Group.</t>
      </section>
      <section anchor="mediatimelinetemplate">
        <name>Media Timeline Template</name>
        <t>When the relationship between media time, MOQT Location and wallclock time follows
a regular, predictable pattern, a media timeline template <bcp14>MAY</bcp14> be used instead of an
explicit media timeline track. The template approach is best suited for content with
fixed-duration segments, such as VOD assets or live broadcasts with constant segment
durations. For content with variable segment durations, the explicit media timeline
track (<xref target="mediatimelinepayload"/>) <bcp14>MUST</bcp14> be used instead.</t>
        <section anchor="template-format">
          <name>Template Format</name>
          <t>A media timeline template is expressed as an inline track attribute using the
<xref target="template"/> field. The template is a JSON Array containing six mandatory values
in the following fixed order:</t>
          <ol spacing="normal" type="1"><li>
              <t>startMediaTime - The media presentation timestamp of the first entry, as
defined for media timeline entries in <xref target="explicitentryformat"/>.</t>
            </li>
            <li>
              <t>deltaMediaTime - The constant interval between media presentation timestamps,
expressed as a JSON Number in milliseconds.</t>
            </li>
            <li>
              <t>startLocation - The MOQT Location of the first entry, as defined for media
timeline entries in <xref target="explicitentryformat"/>.</t>
            </li>
            <li>
              <t>deltaLocation - The constant interval between MOQT Locations, expressed as a
JSON Array of two Numbers where the first number is the Group ID delta and the
second number is the Object ID delta.</t>
            </li>
            <li>
              <t>startWallclock - The wallclock time of the first entry, as defined for media
timeline entries in <xref target="explicitentryformat"/>. For VOD assets, or if the wallclock
time is not known, the value <bcp14>SHOULD</bcp14> be 0.</t>
            </li>
            <li>
              <t>deltaWallclock - The constant interval between wallclock times, expressed as a
JSON Number in milliseconds. For VOD assets, or if the wallclock time is not
known, the value <bcp14>SHOULD</bcp14> be 0.</t>
            </li>
          </ol>
          <t>All six values are mandatory and <bcp14>MUST</bcp14> appear in the specified order.</t>
          <t>Clients compute entry values using the following formulas, where n is the
zero-based entry index:</t>
          <artwork><![CDATA[
mediaTime[n] = startMediaTime + (n * deltaMediaTime)
location[n] = [startLocation[0] + (n * deltaLocation[0]),
               startLocation[1] + (n * deltaLocation[1])]
wallclock[n] = startWallclock + (n * deltaWallclock)
]]></artwork>
          <t>An example template value is shown below:</t>
          <sourcecode type="json"><![CDATA[
[0, 2002, [0, 0], [1, 0], 1759924158381, 2002]
]]></sourcecode>
          <t>This template indicates that the first entry has media time 0ms, location [0,0],
and wallclock time 1759924158381. Each subsequent entry increments media time by
2002ms, location by [1,0] (next group, same object), and wallclock by 2002ms.</t>
        </section>
        <section anchor="template-immutability">
          <name>Template Immutability</name>
          <t>Unlike the explicit media timeline track, the media timeline template is intended
to be immutable once publishing starts. Publishers <bcp14>MUST NOT</bcp14> change the template
values for a track after the first Object has been published.</t>
        </section>
      </section>
    </section>
    <section anchor="eventtimelinetrack">
      <name>Event Timeline track</name>
      <t>The event timeline track provides a mechanism to associate ad-hoc event metadata with
the broadcast. Use-case examples include live sports score data, GPS coordinates of race
cars, SAP-types for media segments or active speaker notifications in web conferences.</t>
      <t>To allow the client to bind this event metadata with the broadcast content described by
the media timeline track, each event record <bcp14>MUST</bcp14> contain a reference to one of
Media PTS, wallclock time or MOQT Location.</t>
      <t>Event timeline tracks are optional. Multiple event timeline tracks can exist inside a
catalog. The type &amp; structure of the data contained within each event timeline track is
declared in the catalog, to facilitate client selection and parsing.</t>
      <section anchor="eventtimelineformat">
        <name>Event Timeline data format</name>
        <t>An event timeline track is a JSON <xref target="JSON"/> document. This document <bcp14>MAY</bcp14> be compressed
using the MSF_COMPRESSION property (<xref target="compression-signaling"/>). The document
contains an array of records. Each record consists of a JSON Object containing
the following required fields:</t>
        <ul spacing="normal">
          <li>
            <t>An index reference, which <bcp14>MUST</bcp14> be either 't' for wallclock time, 'l' for Location or
'm' for Media PTS. Only one of these index values may be used within each record. Event
timelines <bcp14>SHOULD</bcp14> use the same index reference type for each record. The definitions for
wallclock time, Location and Media PTS are identical to those defined for media timeline
payload <xref target="mediatimelinepayload"/>. Wallclock time and media PTS values are JSON Number,
while Location value is an Array of Numbers, where the first item represents the MOQT
GroupID and the second item the MOQT Object ID.</t>
          </li>
          <li>
            <t>A 'data' Object, whose structure is defined by the <xref target="eventtype"/> value declared for this
track in the Catalog.</t>
          </li>
        </ul>
      </section>
      <section anchor="event-timeline-catalog-requirements">
        <name>Event Timeline Catalog requirements</name>
        <t>An event timeline track <bcp14>MUST</bcp14> carry:</t>
        <ul spacing="normal">
          <li>
            <t>a <xref target="packaging"/> attribute with a value of "eventtimeline".</t>
          </li>
          <li>
            <t>a <xref target="dependencies"/> attribute which contains an array of all track names to which the event
timeline track applies.</t>
          </li>
          <li>
            <t>a <xref target="mimetype"/> attribute with a value of "application/json".</t>
          </li>
          <li>
            <t>an <xref target="eventtype"/> attribute declaring the type &amp; structure of data contained in the
event timeline track.</t>
          </li>
        </ul>
      </section>
      <section anchor="event-timeline-track-updating">
        <name>Event Timeline track updating</name>
        <t>The publisher <bcp14>MUST</bcp14> publish an independent event timeline in the first MOQT Object
of each MOQT Group of an event timeline track. An independent event timeline object
<bcp14>MUST</bcp14> contain all event timeline records accumulated and accessible up to that point, allowing a
subscriber joining at any group boundary to receive the accessible event history.
The publisher <bcp14>MAY</bcp14> publish incremental updates in the second and subsequent Objects
within each Group. Incremental updates contain only new event timeline records since
the previous event timeline Object in that Group.</t>
      </section>
      <section anchor="event-timeline-track-examples">
        <name>Event timeline track examples</name>
        <section anchor="event-timeline-track-with-wallclock-time-indexing">
          <name>Event timeline track with wallclock time indexing</name>
          <t>This example shows how sports scores and game information might be defined in a live
sports broadcast.</t>
          <sourcecode type="json"><![CDATA[
[
    {
        "t": 1756885678361,
        "data": {
            "status": "in_progress",
            "period": 1,
            "clock": "12:00",
            "homeScore": 0,
            "awayScore": 0,
            "lastPlay": "Game Start"
        }
    },
    {
        "t": 1756885981542,
        "data": {
            "status": "in_progress",
            "period": 1,
            "clock": "09:25",
            "homeScore": 2,
            "awayScore": 0,
            "lastPlay": "Team A: #23 makes 2-pt jump shot"
        }
    }
]

]]></sourcecode>
        </section>
        <section anchor="event-timeline-track-with-moqt-location-indexing">
          <name>Event timeline track with MOQT Location indexing</name>
          <t>This example shows drone GPS coordinates synched with the start of each Group.</t>
          <sourcecode type="json"><![CDATA[
[
    {
        "l": [0,0],
        "data": [47.1812,8.4592]
    },
    {
        "l": [1,0],
        "data": [47.1662,8.5155]
    }
]

]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="logtrack">
      <name>Log track</name>
      <t>Log tracks provide a mechanism for subscribers to publish diagnostic and
operational log data back to the delivery system. This enables QoE monitoring,
debugging, and analytics collection. Log tracks are defined in the catalog's
publishTracks array with a packaging value of "moqlog".</t>
      <section anchor="logpayload">
        <name>Log track payload</name>
        <t>The log track payload format is defined in <xref target="MOQLOG"/>. Each MOQT Object contains
a single JSON-formatted log entry. The log entry structure includes optional fields
such as severity, timestamp, hostname, application name, process ID, message ID,
and the log message itself. Additional structured data fields support distributed
tracing integration with TraceID, SpanID, and InstrumentationScope aligned with
OpenTelemetry specifications. Implementations <bcp14>MUST</bcp14> follow the object payload
format specified in Section 4 of <xref target="MOQLOG"/>.</t>
      </section>
      <section anchor="logtrackname">
        <name>Log track namespace and name</name>
        <t>TODO: Finalize on track naming</t>
        <t>Log tracks <bcp14>MUST</bcp14> use the namespace and track name format defined in Section 3
of <xref target="MOQLOG"/>. The Track Namespace consists of the tuples:
<tt>(moq://moq-syslog.arpa/logs-v1/),(resourceID)</tt> where resourceID is a unique
identifier for the publishing resource.</t>
        <t>The Track Name is a single byte containing the log priority level in binary.
Priority levels range from 0 (Emergency) to 7 (Debug), following syslog severity
conventions.</t>
      </section>
      <section anchor="loggroupobject">
        <name>Log track Group ID and Object ID</name>
        <t>The Group ID represents the timestamp at which the log entry was captured,
truncated to a 62-bit binary integer representing microseconds since the Unix epoch.
This allows log entries to be naturally ordered by time within the MOQT object model.</t>
        <t>The Object ID is set to zero for a log entry unless multiple log messages occur
within the same microsecond, in which case the Object ID increments to distinguish
between messages captured at the same timestamp.</t>
      </section>
      <section anchor="log-track-catalog-requirements">
        <name>Log track catalog requirements</name>
        <t>A log track <bcp14>MUST</bcp14> be declared in the publishTracks array of the catalog with:</t>
        <ul spacing="normal">
          <li>
            <t>a <xref target="packaging"/> attribute with a value of "moqlog".</t>
          </li>
          <li>
            <t>a <xref target="trackrole"/> attribute with a value of "log".</t>
          </li>
        </ul>
        <t>A log track <bcp14>MAY</bcp14> include:</t>
        <ul spacing="normal">
          <li>
            <t>a <xref target="connectionuri"/> attribute if logs should be published to a different endpoint.</t>
          </li>
          <li>
            <t>a <xref target="token"/> attribute for publish authorization.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="metricstrack">
      <name>Metrics track</name>
      <t>Metrics tracks provide a mechanism for subscribers to publish quantitative
measurements back to the delivery system. This enables QoE analytics, performance
monitoring, and operational dashboards. Metrics tracks are defined in the catalog's
publishTracks array with a packaging value of "moqmetrics".</t>
      <section anchor="metricspayload">
        <name>Metrics track payload</name>
        <t>The metrics track payload format is defined in <xref target="MOQMETRICS"/>. The data model
consists of Resources (systems generating metrics identified by ResourceID),
optional Attributes (dimensional key-value pairs), and Metrics (named measurements
with timeseries values).</t>
        <t><xref target="MOQMETRICS"/> defines two metric value types - Gauge and Counter.
Both value types support either 64-bit floating point or integer representation.
Implementations <bcp14>MUST</bcp14> follow the object payload format specified in Section 3
of <xref target="MOQMETRICS"/>.</t>
      </section>
      <section anchor="metricstrackname">
        <name>Metrics track namespace and name</name>
        <t>TODO: Finalize the track naming.</t>
        <t>Metrics tracks <bcp14>MUST</bcp14> use the namespace and track name format defined in Section 3
 of <xref target="MOQMETRICS"/>. The Track Namespace consists of the tuples:
<tt>(moq://metrics.moq.arpa/v1/),(resourceID)</tt> where resourceID is a unique identifier
for the publishing resource.</t>
        <t>The Track Name identifies the granularity level for the metrics being published,
specified as a single tuple <tt>(&lt;granularity-level&gt;)</tt> where granularity-level is a
value from 0 (Emergency) to 7 (Debug). Higher priority levels (lower numbers)
indicate more critical metrics that should always be reported.</t>
      </section>
      <section anchor="metricsgroupobject">
        <name>Metrics track Group ID and Object ID</name>
        <t>The Group ID represents the capture time as the number of milliseconds since
January 1, 1970 (Unix epoch). This allows metrics to be naturally grouped and
ordered by their capture timestamp within the MOQT object model.</t>
        <t>Within each Group, Object IDs are assigned as follows:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Object ID 0</strong>: Contains the capture timestamp as Unix epoch time in nanoseconds,
along with any optional attributes for the metrics in this group.</t>
          </li>
          <li>
            <t><strong>Object ID 1 and above</strong>: Each subsequent Object contains an individual metric
as a name-value pair.</t>
          </li>
        </ul>
        <t>This structure allows a single capture event to include multiple metrics while
maintaining efficient MOQT caching and distribution.</t>
      </section>
      <section anchor="metrics-track-catalog-requirements">
        <name>Metrics track catalog requirements</name>
        <t>A metrics track <bcp14>MUST</bcp14> be declared in the publishTracks array of the catalog with:</t>
        <ul spacing="normal">
          <li>
            <t>a <xref target="packaging"/> attribute with a value of "moqmetrics".</t>
          </li>
          <li>
            <t>a <xref target="trackrole"/> attribute with a value of "metrics".</t>
          </li>
        </ul>
        <t>A metrics track <bcp14>MAY</bcp14> include:</t>
        <ul spacing="normal">
          <li>
            <t>a <xref target="connectionuri"/> attribute if metrics should be published to a different endpoint.</t>
          </li>
          <li>
            <t>a <xref target="token"/> attribute for publish authorization.</t>
          </li>
        </ul>
      </section>
      <section anchor="wellknowneventtypes">
        <name>Well-known event timeline types</name>
        <t>Event timelines can carry various types of broadcast metadata synchronized
with media content. The "MSF Event Timeline Types" registry
(<xref target="iana-event-timeline-types"/>) maintains a list of well-known event types.
Publishers <bcp14>SHOULD</bcp14> use registered types when applicable to ensure
interoperability.</t>
        <t>Event timelines can carry data types including but not limited to:</t>
        <ul spacing="normal">
          <li>
            <t>Ad insertion signaling (e.g., SCTE-35 splice points) - see <xref target="SCTE35-MSF"/></t>
          </li>
          <li>
            <t>Out-of-band timed-text cues (WebVTT, IMSC1) - see <xref target="WebVTT-MSF"/> and <xref target="IMSC1-MSF"/></t>
          </li>
          <li>
            <t>Sports scores and game state</t>
          </li>
          <li>
            <t>GPS coordinates and telemetry</t>
          </li>
          <li>
            <t>Active speaker notifications</t>
          </li>
          <li>
            <t>Custom application-specific metadata</t>
          </li>
        </ul>
        <t>The packaging format and data structure for each event type is defined by
the specification referenced in the registry. Custom event types not in
the registry <bcp14>SHOULD</bcp14> use Reverse Domain Name Notation (e.g.,
"com.example.myeventtype") to avoid naming collisions.</t>
      </section>
    </section>
    <section anchor="workflow">
      <name>Workflow</name>
      <section anchor="url-construction-and-interpretation">
        <name>URL construction and interpretation</name>
        <t>An MSF URL identifies a MOQT session and an optional sub-resource within that session.
It inherits the MOQT URI scheme defined in <xref target="MoQTransport"/> and extends it to add a
fragment definition, which defines the type, the namespace and name of the track along
with optional key-value attributes.</t>
        <sourcecode type="abnf"><![CDATA[
; MSF URI Definition
; The following rules are imported from RFC 3986:
;   authority    (Section 3.2)
;   path-abempty (Section 3.3)
;   query        (Section 3.4)

msf-uri = "moqt://" authority path-abempty [ "?" query ] "#" msf-fragment
]]></sourcecode>
        <t>The MOQT specification carries the normative definition of these components,
along with processing instructions. They are repeated here for clarity. In the event of
any conflict, the definition in <xref target="MoQTransport"/> is authoritative.</t>
        <ul spacing="normal">
          <li>
            <t>Scheme: This case-insensitive scheme defines the underlying transport. The client may
use either a WebTransport or native QUIC connection. A moqt URI can be converted to an
https URI by replacing the scheme, so the path-abempty and query components use the
same syntax as https URIs.</t>
          </li>
          <li>
            <t>Authority: Required. Contains the host and optional port (defaulting to 443).
This information is used by the client to establish the transport session.</t>
          </li>
          <li>
            <t>Path: Optional. If present, it provides server-specific configuration or routing
information used during connection initialization.</t>
          </li>
          <li>
            <t>Query: Optional. Contains key-value parameters separated by &amp;. If the query is absent,
the ? separator <bcp14>MUST</bcp14> be omitted. Query arguments are intended for the server and
<bcp14>SHOULD</bcp14> be ignored by the client.</t>
          </li>
        </ul>
        <t>This specification registers a fragment type of "msf" in the "MOQT URI Fragment Types"
registry established by <xref target="MoQTransport"/> (see <xref target="IANA"/>). This type is required for any
URL defining an MSF resource. The value of this type is the msf-fragment-value.</t>
        <t>The msf-fragment is defined by the following ABNF:</t>
        <sourcecode type="abnf"><![CDATA[
; MSF Fragment Definition
; The following rules are imported from RFC 3986:
;   pchar        (Section 3.3)
;   unreserved   (Section 2.3)
;   pct-encoded  (Section 2.1)
;   sub-delims   (Section 2.2)

msf-fragment      = "msf:" msf-fragment-value

msf-fragment-value = track-identifier [ "&" parameter-list ]

track-identifier  = 1*( pchar-no-amp / "/" )
                    ; MSF namespace-name string
                    ; MUST NOT contain '&' or '?'
                    ; '?' MUST be percent-encoded as %3F within this component

parameter-list    = parameter *( "&" parameter )

parameter         = param-name "=" param-value

param-name        = 1*( pchar-no-amp / "/" )

param-value       = *( pchar-no-amp / "/" )

; Derived from RFC 3986 pchar (Section 3.3), excluding '&' and '?':
;   pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
; '&' is excluded as it serves as the MSF fragment component delimiter.
; '?' is excluded to avoid ambiguity with the URI query component delimiter.
pchar-no-amp      = unreserved / pct-encoded / sub-delims-no-amp / ":" / "@"

; Derived from RFC 3986 sub-delims (Section 2.2), excluding '&':
;   sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
sub-delims-no-amp = "!" / "$" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
]]></sourcecode>
        <t>The msf-fragment-value identifies a specific Track. The track-identifier <bcp14>MUST</bcp14> be
formatted as an MSF namespace-name string (see <xref target="namespacenameencoding"/>). The client
uses this identifier to initiate a SUBSCRIBE or FETCH command once the transport session
is established. The namespace-name string <bcp14>MAY</bcp14> be followed by a series of key-value
parameters, each separated from the preceding element by &amp;. These key-value parameters
are intended for processing by the client and, being part of the fragment, are not transferred
to the server at connection time. Certain of the fragment key-value parameters have a reserved
meaning, as defined by <xref target="reservedfragmentparameters"/>.</t>
        <section anchor="reservedfragmentparameters">
          <name>Reserved fragment parameters</name>
          <t>Table 8 defines reserved key names for the parameter portion of the msf-fragment. Keynames are
case-sensitive.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">wallclock-range</td>
                <td align="left">A subclip defined by a wallclock time range</td>
              </tr>
              <tr>
                <td align="left">mediatime-range</td>
                <td align="left">A subclip defined by a media time range</td>
              </tr>
              <tr>
                <td align="left">location-range</td>
                <td align="left">A subclip defined by a MOQT Location range</td>
              </tr>
              <tr>
                <td align="left">c4m</td>
                <td align="left">A base64 encoded C4M token</td>
              </tr>
              <tr>
                <td align="left">connection</td>
                <td align="left">Mandates a connection type</td>
              </tr>
            </tbody>
          </table>
          <ul spacing="normal">
            <li>
              <t>wallclock-range - a range defined by start and end wallclock times, each expressed
as milliseconds since Unix Epoch and separated by a "-" dash. The dash and end
time <bcp14>MAY</bcp14> be omitted to indicate an open range. The range definition is inclusive.</t>
            </li>
            <li>
              <t>mediatime-range - a range defined by start and end media times, each expressed
as milliseconds and separated by a "-" dash. The dash and end time <bcp14>MAY</bcp14> be omitted
to indicate an open range. The range definition is inclusive.</t>
            </li>
            <li>
              <t>location-range - a range defined by start and end media MOQT Location separated by
a "-" dash. Range definitions are inclusive. MOQT Location is expressed as Group ID
and Object ID separated by a "." dot. End Location may be omitted to indicate an
open range which continues to the end of the content.  End Object ID may be omitted,
indicating the whole end group is included in the range. The "." dot and "-" dash
separators <bcp14>MUST</bcp14> be omitted when the second value is omitted.</t>
            </li>
            <li>
              <t>c4m - a base64 encoded token, as defined by <xref target="C4M"/>.</t>
            </li>
            <li>
              <t>connection - mandates the client to use a particular connection type when connecting to
the server. There are two allowed values - "q" or "wt". "q" indicates that a Native QUIC
connection <bcp14>MUST</bcp14> be used. "wt" indicates that a WebTransport connection <bcp14>MUST</bcp14> be used.</t>
            </li>
          </ul>
          <t>If multiple ranges are specified within the same URL for the same parameter, the client <bcp14>MUST</bcp14>
process the union of those ranges.</t>
          <t>Example fragment parameters:</t>
          <ul spacing="normal">
            <li>
              <t>connection=q</t>
            </li>
            <li>
              <t>connection=wt</t>
            </li>
            <li>
              <t>wallclock-range=1761759637565-1761759836189</t>
            </li>
            <li>
              <t>wallclock-range=1761751753894</t>
            </li>
            <li>
              <t>mediatime-range=0-13421</t>
            </li>
            <li>
              <t>mediatime-range=982</t>
            </li>
            <li>
              <t>location-range=34.0-2145.16</t>
            </li>
            <li>
              <t>location-range=16.24 (open range starting at Group ID 16 Object ID 24)</t>
            </li>
            <li>
              <t>location-range=16-24 (range from Group ID 16 through to and including all Objects in Group ID 24)</t>
            </li>
            <li>
              <t>c4m=gqhkYWxnIGVzaGFyqGR0eXBNhdZ9hdWQAY3VybGZlbWlzcwZleWV2aW5uZWlhdGVwQWNyZW5lY</t>
            </li>
          </ul>
        </section>
        <section anchor="namespacenameencoding">
          <name>MSF Namespace-Name String Encoding</name>
          <t>To represent MoQ Tuples (which are sequences of byte strings) within the URL
fragment, MSF uses a specific encoding convention, which is normatively defined by
MOQT <xref target="MoQTransport"/> and repeated here for convenience:</t>
          <ul spacing="normal">
            <li>
              <t>Hierarchy: Each element of the Namespace tuple is rendered in order, separated by
a single hyphen (-).</t>
            </li>
            <li>
              <t>Delimiter: The Track Name is appended to the end, separated from the namespace by
a double hyphen (--).</t>
            </li>
            <li>
              <t>Character Escaping:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Unreserved characters (a-z, A-Z, 0-9, _) are represented literally.</t>
                </li>
                <li>
                  <t>All other byte values (including hyphens and periods used as data) <bcp14>MUST</bcp14> be
percent-encoded using a period (.) followed by two lowercase hexadecimal digits
(e.g., a literal hyphen in a name becomes .2d).</t>
                </li>
              </ul>
            </li>
          </ul>
          <t>Note: This encoding ensures that the structural delimiters (- and --) remain unambiguous.</t>
        </section>
        <section anchor="example-msf-urls">
          <name>Example MSF URLs</name>
          <ul spacing="normal">
            <li>
              <t>URL pointing at a catalog track (either WebTransport or native QUIC may be used):
moqt://example.com/server/config?a=1&amp;b=2#msf:customer-livestream-123--catalog
              </t>
              <ul spacing="normal">
                <li>
                  <t>Session: example.com/server/config?a=1&amp;b=2</t>
                </li>
                <li>
                  <t>Streaming format type: msf</t>
                </li>
                <li>
                  <t>Namespace: ('customer', 'livestream', '123')</t>
                </li>
                <li>
                  <t>Track Name: 'catalog'</t>
                </li>
              </ul>
            </li>
            <li>
              <t>URL with a required raw QUIC connection pointing at a catalog:
moqt://example.com/relay-app/relayID#msf:customerID-broadcastID--catalog&amp;connection=q</t>
            </li>
            <li>
              <t>URL pointing at a non-catalog track, with a required WebTransport connection
moqt://example.com/relay-app/relayID#msf:customerID-broadcastID--video&amp;connection=wt</t>
            </li>
            <li>
              <t>URL pointing at a subclip:
moqt://example.com/relay-app/relayID#msf:customerID-broadcastID--catalog&amp;location-range=34-64</t>
            </li>
            <li>
              <t>URL pointing at a catalog and supplying a token for the client: (linebreaks for display only)
moqt://example.com/relay-app/relayID#msf:customerID-broadcastID--
catalog&amp;c4m=gqhkYWxnIGVzaGFyqGR0eXBNhdZ9hdWQAY3VybGZlbWlzcwZleWV2
aW5uZWlhdGVwQWNyZW5lYnJmcmVqMTIzNDU2NzgwMHZpc3VlZF9hdD0xNzMwNDM</t>
            </li>
            <li>
              <t>URL pointing at a catalog and supplying a token for the client along with a separate token
for the server: (linebreaks for display only)
moqt://example.com/relay-app/relayID?token=HTRCII74GHFT@JHBCV
SW56HKKneH2Dbyq6NHBI2#msf:customerID-broadcastID--catalog&amp;c4m=gqh
kYWxnIGVzaGFyqGR0eXBNhdZ9hdWQAY3VybGZlbWlzcwZleWV2aW5uZWlhdGVwQWN
yZW5lYnJmcmVqMTIzNDU2NzgwMHZpc3VlZF9hdD0xNzMwNDM</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="initiating-a-broadcast">
        <name>Initiating a broadcast</name>
        <t>An MSF publisher <bcp14>MUST</bcp14> publish a catalog track object before publishing any media
track objects.</t>
      </section>
      <section anchor="ending-a-live-broadcast">
        <name>Ending a live broadcast</name>
        <t>After publishing a catalog and defining tracks carrying live content, an original
publisher can deliver a deterministic signal to all subscribers that the broadcast
is complete by taking the following steps:</t>
        <ul spacing="normal">
          <li>
            <t>Send a SUBSCRIBE_DONE (See MOQT Sect 8.1.2) message for all active tracks using
status code 0x2 Track Ended.</t>
          </li>
          <li>
            <t>If the live stream is being converted instantly to a VOD asset, then publish an
independent (non-delta) catalog update which, for each track, sets isLive <xref target="islive"/>
to FALSE and adds a track duration <xref target="trackduration"/> field.</t>
          </li>
          <li>
            <t>If the live stream is being terminated permanently without conversion to VOD, then
publish an independent catalog update which signals isComplete <xref target="iscomplete"/> as
TRUE and which contains an empty Tracks <xref target="tracks"/> field.</t>
          </li>
        </ul>
      </section>
      <section anchor="authorization">
        <name>Authorization</name>
        <t>MSF supports token-based authorization through pluggable authentication schemes.
Both original publishers and end subscribers can independently acquire authorization
tokens and present them to relays. Relays use these tokens to authorize whether
an end subscriber is permitted to setup the connection, as well as to receive content
and/or to send content.</t>
        <section anchor="discovering-authorization-requirements">
          <name>Discovering Authorization Requirements</name>
          <t>End subscribers discover authorization requirements by parsing the catalog.
For each track of interest, examine the <tt>authInfo</tt> field. If present, the
track requires authorization and the subscriber must obtain appropriate
credentials for one of the schemes listed in the field.</t>
          <t>Original publishers and end subscribers may obtain authorization tokens from
multiple sources, including out-of-band provisioning or as a parameter in
the connection URI. These tokens can be presented either in the connection
setup message (CLIENT_SETUP) or in control messages (SUBSCRIBE, FETCH, PUBLISH,
PUBLISH_NAMESPACE) as described in <xref target="presentingauthorization"/>.</t>
        </section>
        <section anchor="token-acquisition">
          <name>Token Acquisition</name>
          <t>Token acquisition is out of scope for this specification. Both original publishers
and end subscribers independently obtain tokens through mechanisms such as:</t>
          <ul spacing="normal">
            <li>
              <t>Direct authentication with a distribution service</t>
            </li>
            <li>
              <t>OAuth 2.0 or OpenID Connect flows</t>
            </li>
            <li>
              <t>Out-of-band provisioning</t>
            </li>
          </ul>
          <t>The token acquisition endpoint and flow depend on the authorization scheme
and deployment configuration. Original publishers and end subscribers <bcp14>MAY</bcp14>
use the same or different authorization services depending on the deployment.</t>
          <t>Tokens <bcp14>MAY</bcp14> also be supplied as parameters in the connection URI. When a
connection URI contains token parameters, the subscriber extracts the token
value and includes it in the appropriate MOQT message. For example:</t>
          <artwork><![CDATA[
moqt://relay.example.com/moqt#namespace--name&token=eyJhbGciOiJFZERTQSJ9...
]]></artwork>
          <t>URI parameters provide a convenient mechanism for distributing pre-authorized
playback links. The parameter name and format are deployment-specific.</t>
        </section>
        <section anchor="presentingauthorization">
          <name>Presenting Authorization</name>
          <t>Once tokens are obtained, both original publishers and end subscribers present
them to relays according to the scheme specification. Tokens <bcp14>MAY</bcp14> be presented
in the SETUP message (CLIENT_SETUP or SERVER_SETUP) using the AUTHORIZATION
TOKEN setup parameter, or in individual control messages using the
AUTHORIZATION TOKEN message parameter.</t>
          <t>When a token is associated with a track, it <bcp14>MUST</bcp14> be included in ALL control
messages that accept the AUTHORIZATION TOKEN parameter and are associated
with that track. For end subscribers, this includes SUBSCRIBE, SUBSCRIBE_NAMESPACE,
FETCH, and REQUEST_UPDATE messages. For original publishers, this includes
PUBLISH and PUBLISH_NAMESPACE messages. This requirement applies regardless
of whether the token was also provided in SETUP.</t>
        </section>
        <section anchor="handling-authorization-failures">
          <name>Handling Authorization Failures</name>
          <t>When a relay rejects an authorization token, subscribers <bcp14>SHOULD</bcp14> handle the
failure gracefully:</t>
          <ul spacing="normal">
            <li>
              <t>If a SUBSCRIBE or FETCH request is rejected due to invalid or expired
authorization, the subscriber <bcp14>MAY</bcp14> attempt to obtain a fresh token and
retry the request.</t>
            </li>
            <li>
              <t>If a token is rejected due to insufficient scope, the subscriber <bcp14>SHOULD
NOT</bcp14> retry with the same token.</t>
            </li>
            <li>
              <t>For interactive applications, subscribers <bcp14>MAY</bcp14> prompt users to
re-authenticate when authorization fails.</t>
            </li>
            <li>
              <t>Subscribers <bcp14>SHOULD</bcp14> implement exponential backoff when retrying failed
authorization attempts to avoid overwhelming the relay or token issuer.</t>
            </li>
          </ul>
          <t>The specific error codes and retry semantics are defined by the authorization
scheme specifications. See <xref target="PrivacyPassAuth"/> for Privacy Pass error handling
and <xref target="C4M"/> for CAT error handling.</t>
        </section>
      </section>
    </section>
    <section anchor="track-properties">
      <name>MSF Properties</name>
      <t>MSF defines MOQT Track Properties and Object Properties (see <xref target="MoQTransport"/>)
to signal metadata about MSF tracks and objects. These properties are carried in
MOQT control messages and object headers, allowing endpoints to learn track and
object characteristics before processing payload data.</t>
      <section anchor="compression-signaling">
        <name>Compression Signaling</name>
        <t>MSF provides two mutually exclusive mechanisms to signal compression of
track payloads, including catalogs (<xref target="catalog"/>), media timeline tracks
(<xref target="mediatimelinetrack"/>), and event timeline tracks (<xref target="eventtimelinetrack"/>).
Publishers <bcp14>MUST</bcp14> use one of the following approaches:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Track Property</strong> (<xref target="compression-track-property"/>): Signals that ALL objects
in the track are compressed using the specified algorithm.</t>
          </li>
          <li>
            <t><strong>Object Property</strong> (<xref target="compression-object-property"/>): Signals compression on
individual objects, allowing a mixture of compressed and uncompressed objects
within the same track.</t>
          </li>
        </ul>
        <t>A publisher <bcp14>MUST NOT</bcp14> use both mechanisms on the same track. If the track property
is set, then every object in the track is compressed and the object property
<bcp14>MUST NOT</bcp14> be present. If compression varies between objects, then the track
property <bcp14>MUST NOT</bcp14> be set and the object property <bcp14>MUST</bcp14> be used on each
compressed object.</t>
        <t>The compression algorithm values used by both mechanisms are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Compression Algorithm</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">None (uncompressed)</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">GZIP</td>
              <td align="left">
                <xref target="GZIP"/></td>
            </tr>
          </tbody>
        </table>
        <t>Table: MSF Compression Values</t>
        <t>All MSF implementations <bcp14>MUST</bcp14> support both uncompressed payloads (value 0 or
property absent) and GZIP compressed payloads (value 1).</t>
        <section anchor="compression-track-property">
          <name>MSF_COMPRESSION Track Property</name>
          <t>The MSF_COMPRESSION track property signals that ALL objects in the track are
compressed using the specified algorithm. This mechanism is appropriate when
every object published on the track uses the same compression.</t>
          <t>Publishers <bcp14>MUST</bcp14> include the MSF_COMPRESSION track property in the PUBLISH
message (publisher-initiated flow) or SUBSCRIBE_OK (subscriber-initiated flow).</t>
          <t>Subscribers <bcp14>MUST</bcp14> check for this property in the corresponding message before
processing the track payload.</t>
          <t>If the property is absent, and no per-object compression is signaled, the
subscriber <bcp14>MUST</bcp14> treat the payload as uncompressed. If the property is present
with a value the subscriber does not support, the subscriber <bcp14>MUST NOT</bcp14> attempt
to process the payload and <bcp14>SHOULD</bcp14> unsubscribe from the track.</t>
        </section>
        <section anchor="compression-object-property">
          <name>MSF_COMPRESSION Object Property</name>
          <t>The MSF_COMPRESSION object property signals that an individual object is
compressed. This mechanism is appropriate when a track contains a mixture of
compressed and uncompressed objects. For example, a catalog track where the
first object in a group (the complete catalog) is compressed, but subsequent
delta update objects within the same group are uncompressed.</t>
          <t>Publishers <bcp14>MUST</bcp14> include the MSF_COMPRESSION object property on each
compressed object.</t>
          <t>Subscribers <bcp14>MUST</bcp14> check for this property on each received object before
processing its payload. If the property is absent on an object, the subscriber
<bcp14>MUST</bcp14> treat that object's payload as uncompressed. If the property is present
with a value the subscriber does not support, the subscriber <bcp14>MUST NOT</bcp14> attempt
to process that object.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>ToDo</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="moqt-uri-fragment-types-registry">
        <name>"MOQT URI Fragment Types" registry</name>
        <t>This document creates a new entry in the "MOQT URI Fragment Types" registry
(see <xref target="MoQTransport"/> Sect 14.3).</t>
        <table>
          <thead>
            <tr>
              <th align="left">Fragment Type</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">msf</td>
              <td align="left">MOQT Streaming Format</td>
              <td align="left">this</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-event-timeline-types">
        <name>"MSF Event Timeline Types" registry</name>
        <t>This document establishes the "MSF Event Timeline Types" registry. This registry
lists the event types that can be used with the eventType field <xref target="eventtype"/>
in MSF catalogs.</t>
        <t>New entries in this registry are subject to Expert Review policy as defined in
<xref target="RFC8126"/>.</t>
        <t>The initial contents of this registry are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Event Type</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">urn:scte:scte35:2013:bin</td>
              <td align="left">SCTE-35 binary splice_info_section</td>
              <td align="left">
                <xref target="SCTE35-MSF"/></td>
            </tr>
            <tr>
              <td align="left">urn:scte:scte35:2013:xml</td>
              <td align="left">SCTE-35 XML representation</td>
              <td align="left">
                <xref target="SCTE35-MSF"/></td>
            </tr>
            <tr>
              <td align="left">urn:msf:timedtext:webvtt</td>
              <td align="left">WebVTT timed text cues</td>
              <td align="left">
                <xref target="WebVTT-MSF"/></td>
            </tr>
            <tr>
              <td align="left">urn:msf:timedtext:imsc1</td>
              <td align="left">IMSC1 timed text  cues</td>
              <td align="left">
                <xref target="IMSC1-MSF"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-track-properties">
        <name>MSF_COMPRESSION Track Property</name>
        <t>This document requests IANA to register the following entry in the
"Track Properties" registry established by <xref target="MoQTransport"/> (Section 14.4):</t>
        <table>
          <thead>
            <tr>
              <th align="left">Property Name</th>
              <th align="left">Property ID</th>
              <th align="left">Value Type</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">MSF_COMPRESSION</td>
              <td align="left">TBD</td>
              <td align="left">varint</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>The MSF_COMPRESSION track property indicates that ALL objects on the track
are compressed using the specified algorithm. See <xref target="compression-track-property"/>
for the full specification.</t>
      </section>
      <section anchor="iana-object-properties">
        <name>MSF_COMPRESSION Object Property</name>
        <t>This document requests IANA to create a new "MSF Compression Algorithms"
registry with the following initial values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Compression Algorithm</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">None (uncompressed)</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">GZIP</td>
              <td align="left">
                <xref target="GZIP"/></td>
            </tr>
          </tbody>
        </table>
        <t>Values 2-127 are available for registration via Standards Action.
Values 128 and above are reserved for private use.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="MoQTransport">
          <front>
            <title>Media over QUIC Transport</title>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Meta</organization>
            </author>
            <date day="12" month="May" year="2026"/>
            <abstract>
              <t>   This document defines Media over QUIC Transport (MOQT), a publish/
   subscribe protocol that runs over QUIC and WebTransport.  MOQT
   leverages the features of these transports, such as streams,
   datagrams, priorities, and partial reliability.  MOQT operates both
   point-to-point and through intermediate relays, enabling scalable
   low-latency delivery.  Despite its name, MOQT is media agnostic and
   can be used for a wide range of use cases.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-18"/>
        </reference>
        <reference anchor="LOC">
          <front>
            <title>Low Overhead Media Container</title>
            <author fullname="Mo Zanaty" initials="M." surname="Zanaty">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Peter Thatcher" initials="P." surname="Thatcher">
              <organization>Microsoft</organization>
            </author>
            <date day="15" month="March" year="2026"/>
            <abstract>
              <t>   This specification describes a Low Overhead Media Container (LOC)
   format for encoded and encrypted audio and video media data to be
   used primarily for interactive Media over QUIC Transport (MOQT).  It
   may be used in the MOQT Streaming Format (MSF) specification, which
   defines a catalog format for publishers to declare and describe their
   LOC tracks and for subscribers to consume them.  Examples are also
   provided for building media applications using LOC and MOQT.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-loc-02"/>
        </reference>
        <reference anchor="SecureObjects">
          <front>
            <title>End-to-End Secure Objects for Media over QUIC Transport</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="8" month="February" year="2026"/>
            <abstract>
              <t>   This document specifies an end-to-end authenticated encryption scheme
   for application objects transmitted via Media over QUIC (MoQ)
   Transport.  The scheme enables original publishers to securely share
   a symmetric key with end subscribers, ensuring that MoQ relays are
   unable to decrypt object contents.  Additionally, subscribers can
   verify the integrity and authenticity of received objects, confirming
   that the content has not been modified in transit.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-secure-objects-04"/>
        </reference>
        <reference anchor="C4M">
          <front>
            <title>Authentication scheme for MOQT using Common Access Tokens</title>
            <author fullname="Will Law" initials="W." surname="Law">
              <organization>Akamai</organization>
            </author>
            <author fullname="Chris Lemmons" initials="C." surname="Lemmons">
              <organization>Comcast</organization>
            </author>
            <author fullname="Gwendal Simon" initials="G." surname="Simon">
              <organization>Synamedia</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <date day="19" month="September" year="2025"/>
            <abstract>
              <t>   A token-based authentication scheme for use with Media Over QUIC
   Transport.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-c4m-00"/>
        </reference>
        <reference anchor="PrivacyPassAuth">
          <front>
            <title>Privacy Pass Authentication for Media over QUIC (MoQ)</title>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Thibault Meunier" initials="T." surname="Meunier">
              <organization>Cloudflare Inc.</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document specifies the use of Privacy Pass architecture and
   issuance protocols for authorization in Media over QUIC (MoQ)
   transport protocol.  It defines how Privacy Pass tokens can be
   integrated with MoQ's authorization framework to provide privacy-
   preserving authentication for subscriptions, fetches, publications,
   and relay operations while supporting fine-grained access control
   through prefix-based track namespace and track name matching rules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-privacy-pass-auth-02"/>
        </reference>
        <reference anchor="BASE64">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="JSON">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="LANG">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips"/>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object. It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="MIME">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="GZIP">
          <front>
            <title>GZIP file format specification version 4.3</title>
            <author fullname="P. Deutsch" initials="P." surname="Deutsch"/>
            <date month="May" year="1996"/>
            <abstract>
              <t>This specification defines a lossless compressed data format that is compatible with the widely used GZIP utility. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1952"/>
          <seriesInfo name="DOI" value="10.17487/RFC1952"/>
        </reference>
        <reference anchor="MOQLOG">
          <front>
            <title>Logging over Media over QUIC Transport</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   Real time systems often run into the problems where the network
   bandwidth for logging in shared with the real time media and impacts
   the media quality.  There is a desire to transport the logging data
   at an appropriate priority level over the same transport as the
   media.  This allows the logging data to take advantage of times when
   the media bitrate is blow the peak rate while not impact the peak
   rate available for media.

   This document specifies how to send syslog RFC5424 type information
   over the Media Over QUIC Transport (MOQT) [I-D.ietf-moq-transport].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-log-03"/>
        </reference>
        <reference anchor="MOQMETRICS">
          <front>
            <title>Metrics over MOQT</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies how to send metrics type information over the
   Media Over QUIC Transport (MOQT).

   Many systems produce significant volumes of metrics which either are
   not all needed at the same time for consumption by collection/
   aggregation endpoints or may also compete for bandwidth with the
   primary application, thus exacerbating congestion conditions
   especially in low-bandwidth networks.  Delivering these over
   architectures enabled by publish/subscribe transport like Media Over
   QUIC Transport (MOQT) [I-D.ietf-moq-transport], allows metrics data
   to be prioritized within the congestion context of the primary
   application as well as enabling local nodes to cache the metric value
   to be later retrieved via new subscriptions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-metrics-02"/>
        </reference>
        <reference anchor="WEBCODECS-CODEC-REGISTRY" target="https://www.w3.org/TR/webcodecs-codec-registry/">
          <front>
            <title>WebCodecs Codec Registry</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="WEBVTT" target="https://www.w3.org/TR/webvtt1/">
          <front>
            <title>World Wide Web Consortium (W3C), WebVTT: The Web Video Text Tracks Format</title>
            <author>
              <organization/>
            </author>
            <date year="2019" month="April"/>
          </front>
        </reference>
        <reference anchor="IMSC1" target="https://www.w3.org/TR/ttml-imsc1/">
          <front>
            <title>W3C, TTML Profiles for Internet Media Subtitles and Captions 1.0 (IMSC1)</title>
            <author>
              <organization/>
            </author>
            <date year="2016" month="April"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="E2EE-MLS">
          <front>
            <title>End-to-end Security for Media over QUIC</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="30" month="June" year="2025"/>
            <abstract>
              <t>   The Media over QUIC system allows relays to assist in the delivery of
   real-time media.  While these relays are trusted to facilitate media
   delivery, they are not trusted to access the media content.  The
   document describes an end-to-end security system that prevents relays
   from accessing media content.  MLS is used to establish keys that are
   available only to legitimate participants in a session, which are
   then used to protect media data using SFrame.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-e2ee-mls-03"/>
        </reference>
        <reference anchor="SCTE214-1" target="https://www.scte.org/standards/library/catalog/scte-214-1-mpeg-dash-for-ip-based-cable-services-part-1-mpd-constraints-and-extensions/">
          <front>
            <title>SCTE 214-1: MPEG DASH for IP-Based Cable Services Part 1 - MPD Constraints and Extensions</title>
            <author>
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="WebVTT-MSF" target="https://github.com/suhasHere/webvtt-msf">
          <front>
            <title>WebVTT Packaging for MOQT Streaming Format</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="IMSC1-MSF" target="https://github.com/suhasHere/imsc1-msf">
          <front>
            <title>IMSC1 Packaging for MOQT Streaming Format</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="SCTE35-MSF" target="https://github.com/wilaw/SCTE35-over-MSF-Event-Timeline">
          <front>
            <title>SCTE-35 over MSF Event Timeline</title>
            <author>
              <organization/>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 2617?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <ul spacing="normal">
        <li>
          <t>the MoQ Workgroup and mailing lists.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>The following persons where the co-authors of the individual draft (draft-law-moq-warpstreamingformat) this document is based on:</t>
      <ul spacing="normal">
        <li>
          <t>Luke Curley</t>
        </li>
        <li>
          <t>Victor Vasiliev</t>
        </li>
        <li>
          <t>Suhas Nandakumar</t>
        </li>
        <li>
          <t>Kirill Pugin</t>
        </li>
        <li>
          <t>Will Law</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
ch4fxRUPrz7ucIebcB23u/XJLGwzipQSrjxvsnsosZqBHse2A8GnMSZvhowS
4nvknbdE9+BO9Xs7eWZqpFgdpaM5FQ/YKaiFjPRmRIPuboEPYGpucBOOGSXs
kiqxMAnY1nPxe7Fgh2rOhaDq8tJ26vqEYqc2TJuyxl7uwUYf885BiPDeJrGh
PTvmfXzkpT5/VIZM4zoltFQngcDCXngT7MUdKeE6oaqX8UHAvLE6DgB/cXGc
KIC1zUGrBMA3jm+MYwLwCdWdo8BLpxgKoZF4r0zzF/sUwZ2cc36vCjTG4hRU
28OYQkGCLLXltMxaKYB2zqcWkHjvHR4ULLWSwVuzYpKNLt0IelCyr67+CwTK
B4O1TfJSIcGXHH71uFYmPdz9DInBAplFeTnvb5Fj1cSpdqy6JZLd9BDi3LzM
t6pRndI/6/e21lYH61vDLLcTklpCUnuXSwr9E6sf/LMSX8v7oKYQz7p96HfT
SWPob58/Cyo9ejL7gqExkonKFWG1oq2LdHhe1/Y1LlDE9YxiW8+oRSXwShkt
Gj6bVqOB8xoVO3JHbx2exnfqItmzeqNMT8e0xU7lH1GxiVZMaMnrwfUXAtuD
SyijTmjacujDjSUXNLkY6OXGCuG9mbQkGTpX9ndjVQ/pXLTrgotw1PsrVAxD
AL6Pjx/vOnBHtVoKEvha4m0UoiDXxFWJXO0k+igzi1g5r7PwmPKZaI8PXFSt
aNMUYQlvfNn1VojDjFX4aidUio0675bnMFTb4plSS7Yc/DtbB9gMEK/1Bmv3
2Y91nmQTCk/CTRIgSAuuLMFGJ9ilB9T3ba7ToyMM1h7YUo4S/a+pw5QwnZ0n
1CEaM3V7vR5Z9lF22h5hRTpQzrj3YXS1xfU50/GjzgnoGGkHdrXHAnHxDRX5
Emkas/1gshx8WHFcI1WaIR9wUS4Y69jbSsCcCsU120FsVIjf2FSSdbSbcZmc
YC0f/E9vklz0sLr+RVLOKpVe2IO8wtzTICLGxSVsoiKz6LP52zTemZeTFMvA
vc5GWM3mdVLBctJzcpBgX8wXCOy382lSwqWvszKD4/Jyfgos/Mv4Df7xLLmI
/n/kb1OrdZMBAA==

-->

</rfc>
