summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/manual/convenience.map4
-rw-r--r--docs/manual/developer/new_api_2_4.html.en3
-rw-r--r--docs/manual/expr.html.fr2
-rw-r--r--docs/manual/filter.html.fr2
-rw-r--r--docs/manual/filter.xml.es2
-rw-r--r--docs/manual/filter.xml.ja2
-rw-r--r--docs/manual/filter.xml.ko2
-rw-r--r--docs/manual/filter.xml.tr2
-rw-r--r--docs/manual/new_features_2_4.html.fr3
-rw-r--r--docs/manual/rewrite/intro.html.fr4
-rw-r--r--docs/manual/ssl/ssl_faq.html.fr5
-rw-r--r--docs/manual/ssl/ssl_howto.html.en8
-rw-r--r--docs/manual/ssl/ssl_howto.html.fr10
-rw-r--r--docs/manual/vhosts/examples.html.fr7
-rw-r--r--docs/manual/vhosts/examples.xml.meta2
15 files changed, 33 insertions, 25 deletions
diff --git a/docs/manual/convenience.map b/docs/manual/convenience.map
index d97a59680c..74f3a1571d 100644
--- a/docs/manual/convenience.map
+++ b/docs/manual/convenience.map
@@ -104,6 +104,7 @@ authzdbdredirectquery mod/mod_authz_dbd.html#authzdbdredirectquery
authzdbmtype mod/mod_authz_dbm.html#authzdbmtype
authzprovideralias mod/mod_authz_core.html#authzprovideralias
authzsendforbiddenonfailure mod/mod_authz_core.html#authzsendforbiddenonfailure
+balancergrowth mod/mod_proxy.html#balancergrowth
balancermember mod/mod_proxy.html#balancermember
browsermatch mod/mod_setenvif.html#browsermatch
browsermatchnocase mod/mod_setenvif.html#browsermatchnocase
@@ -187,6 +188,8 @@ documentroot mod/core.html#documentroot
dtraceprivileges mod/mod_privileges.html#dtraceprivileges
dumpioinput mod/mod_dumpio.html#dumpioinput
dumpiooutput mod/mod_dumpio.html#dumpiooutput
+else mod/core.html#else
+elseif mod/core.html#elseif
enableexceptionhook mod/mpm_common.html#enableexceptionhook
enablemmap mod/core.html#enablemmap
enablesendfile mod/core.html#enablesendfile
@@ -446,6 +449,7 @@ ssiendtag mod/mod_include.html#ssiendtag
ssierrormsg mod/mod_include.html#ssierrormsg
ssietag mod/mod_include.html#ssietag
ssilastmodified mod/mod_include.html#ssilastmodified
+ssilegacyexprparser mod/mod_include.html#ssilegacyexprparser
ssistarttag mod/mod_include.html#ssistarttag
ssitimeformat mod/mod_include.html#ssitimeformat
ssiundefinedecho mod/mod_include.html#ssiundefinedecho
diff --git a/docs/manual/developer/new_api_2_4.html.en b/docs/manual/developer/new_api_2_4.html.en
index 547695c6f8..0a0404f4c0 100644
--- a/docs/manual/developer/new_api_2_4.html.en
+++ b/docs/manual/developer/new_api_2_4.html.en
@@ -119,6 +119,9 @@
initial configuration preflight phase or not. This is both easier to
use and more correct than the old method of creating a pool userdata
entry in the process pool.</li>
+ <li>New function ap_get_conn_socket to get the socket descriptor for a
+ connection. This should be used instead of accessing the core
+ connection config directly.</li>
</ul>
diff --git a/docs/manual/expr.html.fr b/docs/manual/expr.html.fr
index 6e5ce4a63c..ffdbc3dafb 100644
--- a/docs/manual/expr.html.fr
+++ b/docs/manual/expr.html.fr
@@ -42,7 +42,7 @@
<li><img alt="" src="./images/down.gif" /> <a href="#unnop">Opérateurs unaires</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#functions">Fonctions</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#other">Autres</a></li>
-</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="directive"><a href="./mod/core.html#if">If</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li></ul></div>
+</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="directive"><a href="./mod/core.html#if">If</a></code></li><li><code class="directive"><a href="./mod/core.html#if">&lt;If&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#elseif">&lt;ElseIf&gt;</a></code></li><li><code class="directive"><a href="./mod/core.html#else">&lt;Else&gt;</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvifexpr">SetEnvIfExpr</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><a href="mod/mod_authz_core.html#reqexpr">Require expr</a></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslrequire">SSLRequire</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="grammar" id="grammar">Syntaxe en Forme de Backus-Naur</a></h2>
diff --git a/docs/manual/filter.html.fr b/docs/manual/filter.html.fr
index ca2ad2c3ff..47624ec1ba 100644
--- a/docs/manual/filter.html.fr
+++ b/docs/manual/filter.html.fr
@@ -37,7 +37,7 @@
<div class="section">
<h2><a name="intro" id="intro">Le filtrage avec Apache 2</a></h2>
- <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code></li><li><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code></li><li><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_filter.html#filterchain">FilterChain</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterdeclare">FilterDeclare</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprotocol">FilterProtocol</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addinputfilter">AddInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeinputfilter">RemoveInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeoutputfilter">RemoveOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_reflector.html#reflectorheader">ReflectorHeader</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilteroptions">ExtFilterOptions</a></code></li><li><code class="directive"><a href="./mod/core.html#setinputfilter">SetInputFilter</a></code></li><li><code class="directive"><a href="./mod/core.html#setoutputfilter">SetOutputFilter</a></code></li></ul></td></tr></table>
+ <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code></li><li><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code></li><li><code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code></li><li><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></li><li><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code></li><li><code class="module"><a href="./mod/mod_reflector.html">mod_reflector</a></code></li><li><code class="module"><a href="./mod/mod_buffer.html">mod_buffer</a></code></li><li><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></li><li><code class="module"><a href="./mod/mod_ratelimit.html">mod_ratelimit</a></code></li><li><code class="module"><a href="./mod/mod_reqtimeout.html">mod_reqtimeout</a></code></li><li><code class="module"><a href="./mod/mod_request.html">mod_request</a></code></li><li><code class="module"><a href="./mod/mod_sed.html">mod_sed</a></code></li><li><code class="module"><a href="./mod/mod_substitute.html">mod_substitute</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_filter.html#filterchain">FilterChain</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterdeclare">FilterDeclare</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprotocol">FilterProtocol</a></code></li><li><code class="directive"><a href="./mod/mod_filter.html#filterprovider">FilterProvider</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addinputfilter">AddInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeinputfilter">RemoveInputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removeoutputfilter">RemoveOutputFilter</a></code></li><li><code class="directive"><a href="./mod/mod_reflector.html#reflectorheader">ReflectorHeader</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a></code></li><li><code class="directive"><a href="./mod/mod_ext_filter.html#extfilteroptions">ExtFilterOptions</a></code></li><li><code class="directive"><a href="./mod/core.html#setinputfilter">SetInputFilter</a></code></li><li><code class="directive"><a href="./mod/core.html#setoutputfilter">SetOutputFilter</a></code></li></ul></td></tr></table>
<p>La chaîne de filtrage est disponible depuis la version 2.0 d'Apache,
et permet aux applications de traiter les données en entrée et en sortie
diff --git a/docs/manual/filter.xml.es b/docs/manual/filter.xml.es
index f7555a9511..26f1f894eb 100644
--- a/docs/manual/filter.xml.es
+++ b/docs/manual/filter.xml.es
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
-<!-- English Revision: 151408:966890 (outdated) -->
+<!-- English Revision: 151408:1133582 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/docs/manual/filter.xml.ja b/docs/manual/filter.xml.ja
index eb15b3a4bd..e351f59294 100644
--- a/docs/manual/filter.xml.ja
+++ b/docs/manual/filter.xml.ja
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 151408:966890 (outdated) -->
+<!-- English Revision: 151408:1133582 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/docs/manual/filter.xml.ko b/docs/manual/filter.xml.ko
index 7aed2c89ce..721cd2ddab 100644
--- a/docs/manual/filter.xml.ko
+++ b/docs/manual/filter.xml.ko
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 151408:966890 (outdated) -->
+<!-- English Revision: 151408:1133582 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/docs/manual/filter.xml.tr b/docs/manual/filter.xml.tr
index d70fde6089..ef0de58e1f 100644
--- a/docs/manual/filter.xml.tr
+++ b/docs/manual/filter.xml.tr
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
-<!-- English Revision: 659902:966890 (outdated) -->
+<!-- English Revision: 659902:1133582 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
diff --git a/docs/manual/new_features_2_4.html.fr b/docs/manual/new_features_2_4.html.fr
index b1490b65ca..7995ec4c29 100644
--- a/docs/manual/new_features_2_4.html.fr
+++ b/docs/manual/new_features_2_4.html.fr
@@ -87,6 +87,9 @@ serveur HTTP Apache</h1>
<dd>Fournit un tampon pour les piles des filtres en entrée et en
sortie.</dd>
+ <dt><code class="module"><a href="./mod/mod_data.html">mod_data</a></code></dt>
+ <dd>Convertit un corps de réponse en URL de type données RFC2397.</dd>
+
<dt><code class="module"><a href="./mod/mod_lua.html">mod_lua</a></code></dt>
<dd>Embarque le langage <a href="http://www.lua.org/">Lua</a> dans
httpd pour la configuration et les fonctions logiques courantes.</dd>
diff --git a/docs/manual/rewrite/intro.html.fr b/docs/manual/rewrite/intro.html.fr
index 868c12d886..a24d5e75e3 100644
--- a/docs/manual/rewrite/intro.html.fr
+++ b/docs/manual/rewrite/intro.html.fr
@@ -198,7 +198,7 @@ trois types :</p>
<dt>Un chemin complet du système de fichiers vers une ressource</dt>
<dd>
<div class="example"><p><code>
-RewriteRule ^/jeux.* /usr/local/jeux/web
+RewriteRule ^/jeux /usr/local/jeux/web
</code></p></div>
<p>Ceci peut faire correspondre une requête à toute localisation voulue de
votre système de fichiers, un peu comme la directive <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>.</p>
@@ -291,7 +291,7 @@ de requête, sauf si elles contiennent aussi un cookie contenant le mot
<div class="example"><p><code>
RewriteCond %{QUERY_STRING} hack<br />
RewriteCond %{HTTP_COOKIE} !go<br />
-RewriteRule .* - [F]
+RewriteRule . - [F]
</code></p></div>
<p>Notez que le point d'exclamation indique une correspondance négative
; ainsi, la règle n'est appliquée que si le cookie ne contient pas "go"</p>
diff --git a/docs/manual/ssl/ssl_faq.html.fr b/docs/manual/ssl/ssl_faq.html.fr
index 706ceda209..0e00fee5bc 100644
--- a/docs/manual/ssl/ssl_faq.html.fr
+++ b/docs/manual/ssl/ssl_faq.html.fr
@@ -728,7 +728,8 @@ et mot de passe sont envoyés en clair ?</a></h3>
<h3><a name="msie" id="msie">Pourquoi des erreurs d'entrée/sortie apparaissent-elles
-lorsqu'on se connecte à un serveur Apache+mod_ssl avec
+lorsqu'on se connecte via HTTPS à un serveur Apache+mod_ssl avec des
+versions anciennes de
Microsoft Internet Explorer (MSIE) ?</a></h3>
<p>La première raison en est la présence dans l'implémentation SSL de
certaines versions de MSIE de bogues subtils en rapport avec le
@@ -742,7 +743,7 @@ ou l'envoi de messages de notification de fermeture de session SSL aux
clients MSIE. Pour cela, vous pouvez utiliser la directive suivante
dans votre section d'hôte virtuel avec support SSL :</p>
<div class="example"><p><code>
- SetEnvIf User-Agent ".*MSIE.*" \<br />
+ SetEnvIf User-Agent "MSIE [2-5]" \<br />
nokeepalive ssl-unclean-shutdown \<br />
downgrade-1.0 force-response-1.0
</code></p></div>
diff --git a/docs/manual/ssl/ssl_howto.html.en b/docs/manual/ssl/ssl_howto.html.en
index e38d82d27d..733025c455 100644
--- a/docs/manual/ssl/ssl_howto.html.en
+++ b/docs/manual/ssl/ssl_howto.html.en
@@ -69,7 +69,7 @@ only?</a></h3>
<p>The following enables only the strongest ciphers:</p>
<div class="example"><h3>httpd.conf</h3><p><code>
SSLProtocol all -SSLv2<br />
- SSLCipherSuite HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite HIGH:!aNULL:!EXP:!MD5:!NULL<br />
</code></p></div>
<p>While with the following configuration you enable two ciphers
@@ -77,7 +77,7 @@ only?</a></h3>
<div class="example"><h3>httpd.conf</h3><p><code>
SSLProtocol all -SSLv2<br />
- SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!EXP:!MD5:!NULL<br />
SSLHonorCipherOrder on
</code></p></div>
@@ -96,12 +96,12 @@ URL?</a></h3>
This can be done as follows:</p>
<div class="example"><p><code>
# be liberal in general<br />
- SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
+ SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
<br />
&lt;Location /strong/area&gt;<br />
# but https://hostname/strong/area/ and below<br />
# requires strong ciphers<br />
- SSLCipherSuite HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite HIGH:!aNULL:!EXP:!MD5:!NULL<br />
&lt;/Location&gt;
</code></p></div>
diff --git a/docs/manual/ssl/ssl_howto.html.fr b/docs/manual/ssl/ssl_howto.html.fr
index ec9cd61e3e..6b17a0b3c1 100644
--- a/docs/manual/ssl/ssl_howto.html.fr
+++ b/docs/manual/ssl/ssl_howto.html.fr
@@ -79,7 +79,7 @@ que le chiffrement fort ?</a></h3>
chiffrements de plus haut niveau :</p>
<div class="example"><h3>httpd.conf</h3><p><code>
SSLProtocol all -SSLv2<br />
- SSLCipherSuite HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite HIGH:!aNULL:!EXP:!MD5:!NULL<br />
</code></p></div>
@@ -88,7 +88,7 @@ que le chiffrement fort ?</a></h3>
<div class="example"><h3>httpd.conf</h3><p><code>
SSLProtocol all -SSLv2<br />
- SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!EXP:!MD5:!NULL<br />
SSLHonorCipherOrder on
<br />
</code></p></div>
@@ -110,12 +110,12 @@ accéder à une URL particulière ?</a></h2>
Cette configuration peut se présenter comme suit :</p>
<div class="example"><p><code>
# soyons très tolérant a priori<br />
- SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
+ SSLCipherSuite ALL:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br />
<br />
&lt;Location /strong/area&gt;<br />
# sauf pour https://hostname/strong/area/ et ses sous-répertoires<br />
# qui exigent des chiffrements forts<br />
- SSLCipherSuite HIGH:!ADH:!EXP:!MD5:!NULL<br />
+ SSLCipherSuite HIGH:!aNULL:!EXP:!MD5:!NULL<br />
&lt;/Location&gt;
</code></p></div>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -288,7 +288,7 @@ SSLRequire %{SSL_CIPHER_USEKEYSIZE} &gt;= 128
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
RewriteCond %{HTTPS} !=on
-RewriteRule .* - [F]
+RewriteRule . - [F]
# On permet l'accès soit sur les critères réseaux, soit par authentification Basique
Satisfy any
diff --git a/docs/manual/vhosts/examples.html.fr b/docs/manual/vhosts/examples.html.fr
index 4d31d1247a..bda4e5bb5c 100644
--- a/docs/manual/vhosts/examples.html.fr
+++ b/docs/manual/vhosts/examples.html.fr
@@ -24,8 +24,6 @@
<a href="../ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
-<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
- anglaise pour les changements récents.</div>
<p>Le but de ce document est d'essayer de répondre aux questions
@@ -85,8 +83,7 @@
# Apache doit écouter sur le port 80<br />
Listen 80<br />
<br />
- # Toutes les adresses IP doivent répondre aux requêtes sur les <br />
- # serveurs virtuels<br />
+ <br />
&lt;VirtualHost *:80&gt;<br />
<span class="indent">
DocumentRoot /www/example.com<br />
@@ -606,7 +603,7 @@
# Serveur virtuel primaire<br />
DocumentRoot /www/subdomain<br />
RewriteEngine On<br />
- RewriteRule ^/.* /www/subdomain/index.html<br />
+ RewriteRule . /www/subdomain/index.html<br />
# ...<br />
</span>
&lt;/VirtualHost&gt;<br />
diff --git a/docs/manual/vhosts/examples.xml.meta b/docs/manual/vhosts/examples.xml.meta
index 9222c81673..c15857860f 100644
--- a/docs/manual/vhosts/examples.xml.meta
+++ b/docs/manual/vhosts/examples.xml.meta
@@ -8,7 +8,7 @@
<variants>
<variant>en</variant>
- <variant outdated="yes">fr</variant>
+ <variant>fr</variant>
<variant outdated="yes">ja</variant>
<variant outdated="yes">ko</variant>
<variant outdated="yes">tr</variant>