<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type='text/xsl' href="http://www.w3.org/2002/xmlspec/html/1.7/xmlspec.xsl"?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN"
               "http://www.w3.org/XML/1998/06/xmlspec-v21.dtd" [
  <!-- ================================================================ -->
  <!ENTITY draft.day "15">
  <!ENTITY draft.month "09">
  <!ENTITY draft.monthname "Sep">
  <!ENTITY draft.year "2003">
  <!ENTITY iso6.doc.date "&draft.year;-&draft.month;-&draft.day;">
  <!ENTITY http-ident "http://www.w3.org/2001/tag/doc/respect-metadata">
]>
<spec w3c-doctype='other'>
<?CVS $Id $?>
<header>
<title>Client handling of representation metadata</title>
<w3c-designation>&http-ident;-&iso6.doc.date;</w3c-designation>
<w3c-doctype>TAG Finding</w3c-doctype>
<pubdate><day>&draft.day;</day>
<month>&draft.monthname;</month>
<year>&draft.year;</year>
</pubdate>
<publoc>
<loc href="&http-ident;-&draft.year;&draft.month;&draft.day;">&http-ident;-&draft.year;&draft.month;&draft.day;</loc>
</publoc>
<latestloc><loc href="&http-ident;.html">&http-ident;</loc>
(<loc href="&http-ident;.xml">XML</loc>)
</latestloc>
<prevlocs>
<loc href="http://www.w3.org/2001/tag/doc/mime-respect-20030915">15
Sep 2003 Draft</loc>
</prevlocs>
<authlist>
<author><name><loc href="http://www.w3.org/People/Jacobs/">Ian Jacobs</loc></name>
<affiliation>W3C</affiliation>
</author>
</authlist>
<copyright>
<p>
<loc href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</loc> &#xA9; 2003
<loc href="http://www.w3.org/">W3C</loc><sup>&#xAE;</sup>
(<loc href="http://www.lcs.mit.edu/">MIT</loc>,
<loc href="http://www.ercim.org/">ERCIM</loc>,
<loc href="http://www.keio.ac.jp/">Keio</loc>),
All Rights Reserved. W3C
<loc href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</loc>,
<loc href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</loc>,
<loc href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</loc>, and
<loc href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</loc>
rules apply.
</p></copyright>

<abstract>

<p>The architecture of the Web depends on applications having a
shared understanding of the messages exchanged between agents
(clients, servers, intermediaries, etc.) and a shared expectation
of how the payload of the message -- a representation -- will be
interpreted by the recipient.  The Web architecture uses representation
metadata to indicate the sender's intentions to the recipient whenever
the protocols used for communication allow such metadata to be
communicated.  In particular, dispatching and security-related
decisions regarding the processing of a message are often based on
values provided in representation metadata fields, such as the
"Content-Type" field of HTTP and MIME.  In this finding, we
review the architectural design choice that metadata provided by
an origin server be authoritative.  We also examine why client behavior
that misrepresents the user or server is harmful. Finally, we consider
how specification authors should incorporate these points into their work.</p>
</abstract>

<status>
<p>This draft incorporates suggested changes to
<loc href="mime-respect">mime-respect</loc> by Roy Fielding that have
not yet been reviewed by the TAG.</p>

<p>This document has been developed for discussion by the <loc
href="/2001/tag/">W3C Technical Architecture Group</loc>.  This
finding addresses <loc
href="http://www.w3.org/2001/tag/ilist#contentTypeOverride-24">issue
contentTypeOverride-24</loc> and partly addresses
<loc
href="http://www.w3.org/2001/tag/ilist.html#errorHandling-20">issue
errorHandling-20</loc>. The TAG finding "<loc href="">Internet
Media Type registration, consistency of use</loc>" also includes material
related to this issue.</p>

<p>Publication of this finding does not imply endorsement by the W3C
Membership. This is a draft document and may be updated, replaced or
obsoleted by other documents at any time.</p>

<p><loc href="/2001/tag/findings">Additional TAG findings</loc>, both
approved and in draft state, may also be available. The TAG expects to
incorporate this and other findings into a Web Architecture Document
that will be published according to the process of the <loc
href="/Consortium/Process-20010719/tr#Recs">W3C Recommendation
Track</loc>.</p>

<p>The terms MUST, SHOULD, and SHOULD NOT are used in this document
in accordance with <bibref ref="rfc2119"/>.</p>

<p>Please send comments on this finding to the publicly archived TAG
mailing list <loc
href="mailto:www-tag@w3.org">www-tag@w3.org</loc>
(<loc
href="http://lists.w3.org/Archives/Public/www-tag/">archive</loc>).</p>

</status>
<pubstmt>
<p>World-Wide Web Consortium,
Draft TAG Finding, 2003.</p>
</pubstmt>
<sourcedesc>
<p>Created in electronic form.</p>
</sourcedesc>
<langusage>
<language id="EN">English</language>
</langusage>
<revisiondesc>
<slist>
<sitem>2003-03-31: Published draft</sitem>
</slist>
</revisiondesc>
</header>
<body>

<div1 id="intro">
<head>Summary of Key Points</head>

<p>The following are the key architectural points of this finding:</p>

<ulist>
<item>Representation metadata sent by the originator of a message
      is authoritative in respect to defining the proper interpretation
      of the associated representation. [Design choice]</item>
<item>Agent behavior that misrepresents the user or resource provider
      is harmful. [Principle]</item>
</ulist>

<p>For example, when an HTTP message contains a representation as its
payload (within its message body), the HTTP header field "Content-Type",
if present, defines the Internet media type of that representation.
The recipient is not allowed to "guess" the media type unless no such
metadata was provided with the representation.</p>


<p><loc href="#scenarios">Section 2</loc> presents scenarios where
these principles/points have been ignored and poses the question of
what has been ignored and by whom.  <loc href="#mime-headers">Section
3</loc> discusses the motivation for a Web architecture where origin
metadata is authoritative. <loc href="#silent-recovery">Section 4</loc>
examines the potential harm caused by user agents that misrepresent
the user or silently disregard authoritative metadata. <loc
href="#specs">Section 5</loc> discusses the interaction between
metadata hints in format specifications and protocol headers.
<loc
href="#servers">Section 6</loc> suggests ways in which server
management can alleviate problems due to inconsistencies between
provided content and configured metadata.
</p>

</div1>

<div1 id="scenarios">
<head>Scenarios</head>

<p id="scenario1">Scenario 1: Stuart runs his own Web server at
<code>http://www.example.org/</code>. He creates an HTML page and
means to serve it as <code>text/html</code>, but
misconfigures the server so that the content is served via HTTP/1.1
<bibref ref="rfc2616"/> as
<code>text/plain</code> rather than as <code>text/html</code>. Tim's
browser looks inside the page, detects some markup that suggests that
this is an HTML document (e.g., a <code>&lt;!DOCTYPE</code>
declaration or <code>&lt;title&gt;</code> element), and quietly
renders it according to the HTML specification rather than as plain
text. Janet's browser displays the content as plain text.</p>

<p>Which party has neglected a principle of Web architecture: Stuart
for the server misconfiguration, Tim's browser for silently overriding
the server's headers, or Janet's browser for not detecting that the
content looked like HTML?</p>

<p>Answer 1: By <loc href="#silent-recovery">silently overriding
authoritative metadata</loc>, Tim's browser did not respect Web
architecture principles that promote shared understanding.</p>

<p id="scenario2">Scenario 2: Norm publishes an XHTML document that includes:</p>

<eg><![CDATA[
<link href="cool-style" type="text/css" rel="stylesheet"/>
]]></eg>

<p>Norm's "cool-style" is an XSLT style sheet, but Norm has set
<code>type</code> to <code>text/css</code>. Stuart has configured the
server so that "cool-style" is served via HTTP/1.1 as
<code>application/xslt+xml</code>. With a user agent that understands
XSLT but not CSS, Janet requests the content that includes this
<code>link</code> element. As it loads the page, Janet's user agent
reads the <code>type</code> hint and does not fetch "cool-style."</p>

<p>Which party is responsible for the fact that Janet did not receive
content she should have: Stuart for the server configuration, Norm for
stating that the "cool-style" sheet is served as <code>text/css</code>
when in fact it's served with a different content type, or Janet's
user agent for not double-checking the content type with the
server?</p>


<p>Answer 2: 
<loc href="#answer2">Norm's mislabeling</loc> of content deprived
Janet of content she should have received.</p>

<p>In the sections below, we explore these answers in more detail.</p>
</div1>

<div1 id="mime-headers">
<head>Why origin metadata is authoritative</head>

<p>Successful communication between two parties about a piece of
information relies on shared understanding of the meaning of the
information. On the Web, thousands of independent parties can identify
and communicate about a Web resource. To give these parties the
confidence that they are all talking about the same thing when they
refer to "the resource identified by the following URI ..."  the
design choice for the Web is, in general, that the owner of a resource
assigns the authoritative interpretation of its representations. In
terms of Web architecture, the authoritative interpretation of
representations is communicated as follows:</p>

  <olist>
   <item>Parties on the Web agree to use URIs to identify resources.</item>

   <item>URI schemes may specify how names are allocated (e.g., the
   HTTP URI scheme <bibref ref="rfc2616"/> relies on the Internet
   domain name registry). For these schemes, the party that creates a
   URI has the right to establish the authoritative meaning of the
   resource.</item>

   <item>The resource owner communicates the state of the resource
         with bits; the resource owner's server exchanges these bits
         with the user's clients.</item>

   <item>The user's clients interpret the bits according to
         specification.</item>
  </olist>

<p>
Interpretation of bits on the Internet is governed by protocol
specifications.  The HTTP/1.1 specification, for example,
delegates assignment of the interpretation for a message entity
(the representation enclosed within a message) to the header fields
"Content-Encoding" and "Content-Type", where the latter's value
is defined by an Internet media type (e.g., <code>text/html</code>
or <code>image/jpeg</code>) that, in turn, identifies a registered
data format specification (e.g., XHTML, CSS, PNG, XLink, RDF/XML, etc.).
</p>

<p>There are benefits to allowing different interpretations of a bag
of bits depending on context. For flexibility, protocols like
HTTP/1.1 allow resource owners to direct the interpretation of a bag of
bits by sending metadata along with the bits.
A response from the server includes both the bag of bits (the "entity
body") and metadata about those bits (the "entity headers", including
Content-Type, Content-Language, and Content-Encoding). In Web
architecture terms, a bag of bits plus metadata is called a
<em>representation</em> of a resource.  HTTP's use of Content-prefixed
header fields originated with MIME (RFC2046) and thus is common to
most Internet application-level protocols.</p>

<p>This model does not imply that a given set of bits can only be
interpreted as the author intended. The model is designed to
<em>enable</em> global understanding by having parties agree to follow
a small set of rules for interpreting bits (starting with the media
type). Parties may reach local agreements independently, but they do
not change the authoritative interpretation of the bits.</p>

<p>Another benefit of signaling interpretation by metadata is
improved efficiency. For instance, when a server sends XML data and
labels the data correctly through metadata header fields, a client can
dispatch processing to a handler specific to that media type after
rapid inspection of the metadata (typically short strings).
It would be considerably more expensive for the client
to start up an XML parser to guess the content type.</p>

<p>A particularly important piece of metadata is indicated by
the "Content-Type" header field, which instructs a client on which
specification to follow next in order to interpret a bag of bits;
that specification may invoke others recursively. The media type
refers to the Internet registry of data formats to format specifications
maintained by the Internet Assigned Numbers Authority <bibref ref="IANA"/>.
For instance, in the IANA registry, the content type
<code>text/html</code> is associated with <bibref ref="rfc2854"/>,
which in turn states that:</p>

<div class="notice">
The text/html media type is now defined by W3C Recommendations;
 the latest published version is [HTML401].</div>

<p>Thus, by serving a bag of bits with content type
<code>text/html</code>, the resource owner declares that the HTML 4.01
Recommendation governs the authoritative interpretation.  By serving a
bag of bits (even HTML bits) with content type
<code>text/plain</code>, the resource owner declares that <bibref
ref="rfc2046"/> and <bibref ref="rfc2646"/> govern the authoritative
interpretation. This is the first piece of explaining why Tim's
browser in <loc href="#scenario1">scenario 1</loc> is the culprit.</p>

<div2 id="self-describing">
<head>Self-describing data</head>

<p>A sequence of bits is "self-describing" if it includes enough
information to allow two parties to figure out how to interpret it the
same way without additional clues. If the author intends for the data
to be interpreted in a manner other than what is self-described (e.g.,
"treat this XML content as plain text"), then clarifying metadata is
required (e.g., in protocol headers).</p>

<p>Below we examine appropriate client behavior when inconsistencies
are detected between what the server declares the content type to be
through metadata and any type information available by inspection of
the data itself.</p>

</div2>
</div1>

<div1 id="silent-recovery">
<head>Why user agent behavior that misrepresents the user is harmful</head>

<p>A user agent represents the user for interactions with
servers. User agent behavior that misrepresents the user or
misrepresents the server ultimately undermines trust on the Web and is
thus considered harmful. Misrepresentation may lead to violations of
privacy, security holes, and just plain confusion. Some examples of
potential security violations include:</p>

<ulist>
<item>The client ignores a <code>text/plain</code> header,
detects that the content is a shell script, and executes
the script on the user's machine without the user's knowledge.</item>

<item>A firewall is configured to keep out content of type
<code>text/whatever</code>. A client inside the firewall receives
a piece of content labeled <code>text/plain</code>, detects that
it's really <code>text/whatever</code>, and interprets it according
to the <code>text/whatever</code> specification. The client
thus violates the firewall configuration.</item>
</ulist>

<p>A client that ignores authoritative server headers without
informing the user undermines the goal of creating a shared
information space.</p>

<p>In <loc href="#scenario1">scenario 1</loc>, in terms of Web
architecture, Stuart is innocent; misconfiguration of the server is
not an architectural error, it's just a human error. Instead, Tim's
browser is the culprit since it misrepresents the server by ignoring
the authoritative headers, without informing Tim. Janet's browser
respected the <code>text/plain</code> header, and by doing so, helps
Janet and Stuart detect a server misconfiguration.</p>

<p>Examples of inconsistencies between headers and a bag of bits that
have been observed on the Web include:</p>

<ulist>

<item>The Unicode encoding of a message body (XML document) is
inconsistent with the value of the charset parameter in the message
headers.</item>

<item>The namespace of the root element of a message body (XML
document) is inconsistent with the value of the content type header in
the message headers.</item>
</ulist>

<p>Clients should detect such inconsistencies but should not resolve
them without involving the user (e.g., by securing permission or
at least providing notification).</p>

<p>Another form of inconsistency is when the client expects a MIME
header and the server doesn't send one. For instance, HTTP/1.1 <bibref
ref="rfc2616"/>, section 7.2.1 describes client behavior in the case
when the server sends no content type header:</p>

<div class="notice">Any HTTP/1.1 message containing an entity-body SHOULD
include a Content-Type header field defining the media type of that
body. If and only if the media type is not given by a Content-Type
field, the recipient MAY attempt to guess the media type via
inspection of its content and/or the name extension(s) of the URI used
to identify the resource. If the media type remains unknown, the
recipient SHOULD treat it as type <code>application/octet-stream</code>.</div>

<p>This excerpt is consistent with the principle that the content type
header, when present, is authoritative. HTTP/1.1 allows a client to
guess when no content type is present; in this case, content that is
self-describing is likely to lead to a coherent interpretation.</p>

<p>For this reason, servers should only supply a character encoding
header when there is complete certainty as to the encoding in
use. Otherwise, an error will cause a perfectly usable representation
to be rejected by an architecturally sound client.  Section 7.1 of
<bibref ref="rfc3023"/> states:</p>

<div class="notice">
The use of the charset parameter is STRONGLY RECOMMENDED, since this
information can be used by XML processors to determine authoritatively
the charset of the XML MIME entity.
</div>

<p>However, a receiving application can, with very high reliability,
determine the character encoding of an XML document by reading it,
without reference to any external headers and this is reflected by RFC
3023 in section 8.9, 8.10, and 8.11. Thus there is no ambiguity when
the character encoding header is omitted, and the STRONGLY RECOMMENDED
injunction to use the character encoding header is misplaced for
<code>application/xml</code> and for non-text <code>+xml</code>
types.</p>

<p>We recommend that section 7.1 <bibref ref="rfc3023"/> be amended to
something like the following:</p>

<div class="notice">
Servers which generate representations MUST NOT generate the charset
parameter unless there is certainty that the headers are correct.
When correct, this information can be used by non-XML processors to
determine authoritatively the character encoding of the XML MIME entity.
</div>

<div2 id="client-behavior">
<head>Client handling of inconsistencies</head>

<p>In the absence of header information, a flexible client would do
even more than merely guess and silently proceed. For instance, in
different configurations the client could:</p>

<ulist>
<item>Remain silent when forced to guess, or</item>
<item>Inform the user that a guess has been made, or</item>
<item>Allow the user to direct the client's processing of the
bag of bits (e.g., by invoking a particular handler or saving
to disk).</item>
</ulist>

<p id="answer2">In <loc href="#scenario2">Scenario 2</loc>, Norm is responsible for
Janet not having access to content she was meant to receive. The HTML
4.01 Recommendation states that <quote>Authors who use [the
<code>type</code>] attribute take responsibility to manage the risk
that it may become inconsistent with the content available at the link
target address.</quote> Janet's client could have done more
than merely read the <code>type</code> hint and decide to skip the
"cool-style." Users benefit from clients that allow different
configurations for handling hints, including:</p>

<ulist>
<item>Silently follow hints, or</item>
<item>Query the server, and when there is an inconsistency, 
follow the (authoritative) server heading, or</item>
<item>Query the server, and when there is an inconsistency, prompt
the user for instructions on how to proceed.</item>
</ulist>

<p>It is not a violation of Web architecture when a client overrides
server headers and processes a bag of bits in a non-authoritative
manner, as long as the client is not misrepresenting the user or
server. For instance, an application does not violate Web architecture
when it receives a content header of <code>text/html</code> and,
rather than following the HTML 4.01 Recommendation, provides the
service of validating the HTML, detecting broken links, converting it
to another format, or rendering it as plain text. The problem arises
when the user agent engages in non-authoritative behavior without the
user's awareness or consent.</p>
</div2>

</div1>

<div1 id="specs">
<head>Hints in specifications</head>

<p>Some format specifications allow authors to include in content
"hints" for servers and clients. For instance, the
<code>http-equiv</code> attribute of the HTML <code>meta</code>
element is intended for servers (not clients). In HTML 2.0 <bibref
ref="rfc1866"/>, section 5.2.5, the attribute is specified as
follows:</p>

<div class="notice">HTTP servers may read the content of the document &lt;head&gt; to
generate header fields corresponding to any elements defining a value
for the attribute HTTP-EQUIV.
</div>

<p>The HTML 4.01 attribute <code>type</code> for the <code>link</code>
element (used in <loc href="#scenario2">Scenario 2</loc>) gives
clients a hint about what the content type of the linked resource is
likely to be.</p>

<p>A format specification that includes hints for clients should make
clear that when these hints interact with server headings, they are
advisory only. Format specifications should not include requirements
for clients to override server headers without user consent. An
architecturally sound description of an advisory attribute might
read:</p>

<div class="notice">A URI reference MAY be accompanied by a media type
that provides a hint to the client about the likely media type of
representations of the designated resource. Although the client MUST
treat headers from the server (including those provided by the file
system) as authoritative, the client MAY use the hint in a number of
ways, including as a preference when negotiating with the server,
as input to a decision to retrieve a representation,
or to recover from a misconfigured server. However, when the client
does override the server's headers (by using the hint or any other
mechanism), the client MUST inform the user and SHOULD allow the user
to control processing.</div>

<p>The W3C Recommendation SMIL 2.0 <bibref ref="SMIL20"/> is outmoded
in this regard since the definition of the <code>type</code> attribute
(<loc
href="http://www.w3.org/TR/2001/REC-smil20-20010807/extended-media-object.html#edef-ref">section
7.3.1</loc>) specifies circumstances in which <code>type</code> is
supposed to take precedence over server headers.</p>
</div1>

<div1 id="servers">
<head>Handling misconfigured servers</head>

<p>The rationale frequently provided by specification designers for
why the author should be able to override server headers in content is
to work around misconfigured servers. In many environments, authors do
not have sufficient access to server managers to request that the
server be configured for a new or special MIME type. The TAG does not
believe that author-specified overrides is the proper solution to this
problem (for the reasons cited above, including security risks and
masking of the problem). Instead the TAG recommends the following
(in addition to <loc href="#client-behavior">suggested client
behavior</loc>):</p>

<ulist>
<item>Server managers SHOULD NOT specify a default content type.</item>
<item>Server managers SHOULD NOT specify an arbitrary content
type (e.g., <code>text/plain</code> or
<code>application/octet-stream</code>) when the content type
is unknown.</item>
<item>Authors
SHOULD inform server managers of server misconfigurations.</item>
<item>Server managers SHOULD provide authors with a means to override
global server settings when those settings are incorrect; correction
of global server settings is preferred.</item>
</ulist>


</div1>

<div1 id="conclusion">
<head>Conclusion</head>

<olist>

<item>Client behavior that misrepresents the user or server is harmful.
Client behavior that involves the user in decisions about handling
inconsistencies or errors is beneficial.</item>

<item>Since server headers are authoritative, a client MUST NOT
ignore or override them without involving the user.</item>

</olist>

</div1>

<div1 id="future-work">
<head>Future Work</head>

<olist>

<item>Reviewers of this finding asked whether similar architectural
principles apply to headers sent in the direction of client to the
server. This is the TAG's <loc
href="http://www.w3.org/2001/tag/ilist#putMediaType-38">issue
putMediaType-38</loc>: "Relation of HTTP PUT to GET, and whether client
headers to server are authoritative."
</item>

</olist>

</div1>

<div1 id="references">
<head>References</head>

<blist>

<bibl id="iana" href="http://www.iana.org/" key="IANA">Internet
Assigned Numbers Authority (IANA)</bibl>

<bibl id="rfc1866" href="http://www.ietf.org/rfc/rfc1866"
key="RFC1866">T. Berners-Lee, D. Connolly <titleref>Hypertext Markup Language - 2.0</titleref>, RFC1866, November 1995.</bibl>

<bibl id="rfc2046" href="http://www.ietf.org/rfc/rfc2046.txt"
key="RFC2046">N. Freed, N. Borenstein <titleref>Multipurpose Internet
Mail Extensions (MIME) Part Two: Media Types</titleref>, RFC2046,
November 1996.</bibl>

<bibl id="rfc2119" href="http://www.ietf.org/rfc/rfc2119.txt"
key="RFC2119">S. Bradner <titleref> Key words for use in RFCs to
Indicate Requirement Levels</titleref>, RFC2119, March 1997.</bibl>

<bibl id="rfc2616" href="http://www.ietf.org/rfc/rfc2616.txt"
key="RFC2616">R. Fielding, J. Gettys, J. Mogul, H. Frystyk,
L. Masinter, P. Leach, T. Berners-Lee <titleref>Hypertext Transfer
Protocol -- HTTP/1.1</titleref>, RFC2616, June 1999.</bibl>

<bibl id="rfc2646" href="http://www.ietf.org/rfc/rfc2646.txt"
key="RFC2646"> <titleref>The Text/Plain Format Parameter</titleref>, RFC2646,
August 1999.</bibl>

<bibl id="rfc2854" href="http://www.ietf.org/rfc/rfc2854.txt"
key="RFC2854"> D. Connolly, L. Masinter <titleref>The 'text/html'
Media Type</titleref>, RFC2854, June 2000.</bibl>

<bibl id="rfc3023" href="http://www.ietf.org/rfc/rfc3023.txt"
key="RFC3023"> M. Murata, S. St. Laurent, D. Kohn <titleref>XML Media
      Types</titleref>, RFC3023, January 2001.</bibl>

<bibl id="SMIL20" key="SMIL20"
href="http://www.w3.org/TR/2001/REC-smil20-20010807/">
J. Ayars et al. <titleref> Synchronized Multimedia Integration
Language (SMIL 2.0)</titleref>, W3C Recommendation, 7 August
2001.</bibl>

</blist>

</div1>

<div1 id="acks">
<head>Acknowledgments</head>

<p>Dan Connolly generously provided significant input to this
finding. Stuart Williams, Norm Walsh, and Rob Lanphier also
provided valuable input. Many thanks to all reviewers for their
contributions to this finding.</p>

</div1>

</body>
</spec>
