diff options
Diffstat (limited to 'javadoc/cpw/mods/fml/common/Mod.html')
| -rw-r--r-- | javadoc/cpw/mods/fml/common/Mod.html | 565 |
1 files changed, 565 insertions, 0 deletions
diff --git a/javadoc/cpw/mods/fml/common/Mod.html b/javadoc/cpw/mods/fml/common/Mod.html new file mode 100644 index 0000000..a392d90 --- /dev/null +++ b/javadoc/cpw/mods/fml/common/Mod.html @@ -0,0 +1,565 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_65) on Thu Feb 05 20:10:16 EST 2015 --> +<title>Mod (Forge API)</title> +<meta name="date" content="2015-02-05"> +<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Mod (Forge API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../cpw/mods/fml/common/MissingModsException.html" title="class in cpw.mods.fml.common"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../cpw/mods/fml/common/Mod.CustomProperty.html" title="annotation in cpw.mods.fml.common"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?cpw/mods/fml/common/Mod.html" target="_top">Frames</a></li> +<li><a href="Mod.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#annotation_type_required_element_summary">Required</a> | </li> +<li><a href="#annotation_type_optional_element_summary">Optional</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#annotation_type_element_detail">Element</a></li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">cpw.mods.fml.common</div> +<h2 title="Annotation Type Mod" class="title">Annotation Type Mod</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>@Retention(value=RUNTIME) +@Target(value=TYPE) +public @interface <span class="strong">Mod</span></pre> +<div class="block">This defines a Mod to FML. + Any class found with this annotation applied will be loaded as a Mod. The instance that is loaded will + represent the mod to other Mods in the system. It will be sent various subclasses of <a href="../../../../cpw/mods/fml/common/event/FMLEvent.html" title="class in cpw.mods.fml.common.event"><code>FMLEvent</code></a> + at pre-defined times during the loading of the game, based on where you have applied the <a href="../../../../cpw/mods/fml/common/Mod.EventHandler.html" title="annotation in cpw.mods.fml.common"><code>Mod.EventHandler</code></a> + annotation. + + <p>This is a simple example of a Mod. It has the modId of "MyModId", the name of "My example mod", it is + version 1.0, and depends on FML being loaded. + <pre><code>package mymod; + // Declare that this is a mod with modId "MyModId", name "My example mod", version "1.0" and dependency on FML. + {@literal @}Mod(modId="MyModId",name="My example mod",version="1.0",dependencies="required-after:FML") + public class MyMod { + // Populate this field with the instance of the mod created by FML + {@literal @}Instance("MyModId") + public MyMod instance; + + // Mark this method for receiving an {@link FMLEvent} (in this case, it's the {@link FMLPreInitializationEvent}) + {@literal @}EventHandler public void preInit(FMLPreInitializationEvent event) + { + // Do stuff in pre-init phase (read config, create blocks and items, register them) + } + } + </code> + </pre></div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation_type_required_element_summary"> +<!-- --> +</a> +<h3>Required Element Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Required Element Summary table, listing required elements, and an explanation"> +<caption><span>Required Elements</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Required Element and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#modid()">modid</a></strong></code> +<div class="block">The unique mod identifier for this mod</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation_type_optional_element_summary"> +<!-- --> +</a> +<h3>Optional Element Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation"> +<caption><span>Optional Elements</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Optional Element and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#acceptableRemoteVersions()">acceptableRemoteVersions</a></strong></code> +<div class="block">A replacement for the no-longer-existing "versionRange" of NetworkMod.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#acceptableSaveVersions()">acceptableSaveVersions</a></strong></code> +<div class="block">A version range specifying compatible save version information.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#acceptedMinecraftVersions()">acceptedMinecraftVersions</a></strong></code> +<div class="block">The acceptable range of minecraft versions that this mod will load and run in + The default ("empty string") indicates that only the current minecraft version is acceptable.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#asmHookClass()">asmHookClass</a></strong></code> +<div class="block"><strong>Deprecated.</strong> </div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#bukkitPlugin()">bukkitPlugin</a></strong></code> +<div class="block">An optional bukkit plugin that will be injected into the bukkit plugin framework if + this mod is loaded into the FML framework and the bukkit coremod is present.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#canBeDeactivated()">canBeDeactivated</a></strong></code> +<div class="block">If your mod doesn't have a runtime persistent effect on the state of the game, and can be disabled without side effects + (minimap mods, graphical tweak mods) then you can set true here and receive the FMLDeactivationEvent to perform deactivation + tasks.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#certificateFingerprint()">certificateFingerprint</a></strong></code> +<div class="block">Specifying this field allows for a mod to expect a signed jar with a fingerprint matching this value.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../../cpw/mods/fml/common/Mod.CustomProperty.html" title="annotation in cpw.mods.fml.common">Mod.CustomProperty</a>[]</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#customProperties()">customProperties</a></strong></code> +<div class="block">A list of custom properties for this mod.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#dependencies()">dependencies</a></strong></code> +<div class="block">A simple dependency string for this mod (see modloader's "priorities" string specification)</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#guiFactory()">guiFactory</a></strong></code> +<div class="block">An optional GUI factory for this mod.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#modLanguage()">modLanguage</a></strong></code> +<div class="block">The language the mod is authored in.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#name()">name</a></strong></code> +<div class="block">A user friendly name for the mod</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#useMetadata()">useMetadata</a></strong></code> +<div class="block">Whether to use the mcmod.info metadata by default for this mod.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String</code></td> +<td class="colLast"><code><strong><a href="../../../../cpw/mods/fml/common/Mod.html#version()">version</a></strong></code> +<div class="block">A version string for this mod</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation_type_element_detail"> +<!-- --> +</a> +<h3>Element Detail</h3> +<a name="modid()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>modid</h4> +<pre>public abstract java.lang.String modid</pre> +<div class="block">The unique mod identifier for this mod</div> +</li> +</ul> +<a name="name()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>name</h4> +<pre>public abstract java.lang.String name</pre> +<div class="block">A user friendly name for the mod</div> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="version()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>version</h4> +<pre>public abstract java.lang.String version</pre> +<div class="block">A version string for this mod</div> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="dependencies()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>dependencies</h4> +<pre>public abstract java.lang.String dependencies</pre> +<div class="block">A simple dependency string for this mod (see modloader's "priorities" string specification)</div> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="useMetadata()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>useMetadata</h4> +<pre>public abstract boolean useMetadata</pre> +<div class="block">Whether to use the mcmod.info metadata by default for this mod. + If true, settings in the mcmod.info file will override settings in these annotations.</div> +<dl> +<dt>Default:</dt> +<dd>false</dd> +</dl> +</li> +</ul> +<a name="acceptedMinecraftVersions()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acceptedMinecraftVersions</h4> +<pre>public abstract java.lang.String acceptedMinecraftVersions</pre> +<div class="block">The acceptable range of minecraft versions that this mod will load and run in + The default ("empty string") indicates that only the current minecraft version is acceptable. + FML will refuse to run with an error if the minecraft version is not in this range across all mods.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>A version range as specified by the maven version range specification or the empty string</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="acceptableRemoteVersions()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acceptableRemoteVersions</h4> +<pre>public abstract java.lang.String acceptableRemoteVersions</pre> +<div class="block">A replacement for the no-longer-existing "versionRange" of NetworkMod. Specify a remote version range + that this mod will accept as valid. Defaults to nothing, which is interpreted as "only this version". + Another special value is '*' which means accept all versions. + + This is ignored if there is a <a href="../../../../cpw/mods/fml/common/network/NetworkCheckHandler.html" title="annotation in cpw.mods.fml.common.network"><code>NetworkCheckHandler</code></a> annotation on a method in this class.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>A version range as specified by the maven version range specification or the empty string</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="acceptableSaveVersions()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acceptableSaveVersions</h4> +<pre>public abstract java.lang.String acceptableSaveVersions</pre> +<div class="block">A version range specifying compatible save version information. If your mod follows good version numbering + practice <a href="http://semver.org/">Like this (http://semver.org/)</a> then this should be sufficient. + + Advanced users can specify a <a href="../../../../cpw/mods/fml/common/SaveInspectionHandler.html" title="annotation in cpw.mods.fml.common"><code>SaveInspectionHandler</code></a> instead.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>A version range as specified by the maven version range specification or the empty string</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="bukkitPlugin()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bukkitPlugin</h4> +<pre>public abstract java.lang.String bukkitPlugin</pre> +<div class="block">An optional bukkit plugin that will be injected into the bukkit plugin framework if + this mod is loaded into the FML framework and the bukkit coremod is present. + Instances of the bukkit plugin can be obtained via the <a href="../../../../cpw/mods/fml/common/BukkitPluginRef.html" title="annotation in cpw.mods.fml.common"><code>BukkitPluginRef</code></a> annotation on fields. + + This may be implemented by a bukkit integration. It is not provided with vanilla FML or MinecraftForge.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>The name of the plugin to load for this mod</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="certificateFingerprint()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>certificateFingerprint</h4> +<pre>public abstract java.lang.String certificateFingerprint</pre> +<div class="block">Specifying this field allows for a mod to expect a signed jar with a fingerprint matching this value. + The fingerprint should be SHA-1 encoded, lowercase with ':' removed. An empty value indicates that + the mod is not expecting to be signed. + + Any incorrectness of the fingerprint, be it missing or wrong, will result in the <a href="../../../../cpw/mods/fml/common/event/FMLFingerprintViolationEvent.html" title="class in cpw.mods.fml.common.event"><code>FMLFingerprintViolationEvent</code></a> + event firing <i>prior to any other event on the mod</i>.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>A certificate fingerprint that is expected for this mod.</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="modLanguage()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>modLanguage</h4> +<pre>public abstract java.lang.String modLanguage</pre> +<div class="block">The language the mod is authored in. This will be used to control certain compatibility behaviours for this mod. + Valid values are currently "java", "scala"</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>The language the mod is authored in</dd></dl> +<dl> +<dt>Default:</dt> +<dd>"java"</dd> +</dl> +</li> +</ul> +<a name="asmHookClass()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>asmHookClass</h4> +<pre>@Deprecated +public abstract java.lang.String asmHookClass</pre> +<div class="block"><span class="strong">Deprecated.</span> </div> +<div class="block">NOT YET IMPLEMENTED. </br> + An optional ASM hook class, that can be used to apply ASM to classes loaded from this mod. It is also given + the ASM tree of the class declaring <a href="../../../../cpw/mods/fml/common/Mod.html" title="annotation in cpw.mods.fml.common"><code>Mod</code></a> to do with what it will.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>The name of a class to be loaded and executed. Must implement <a href="../../../../cpw/mods/fml/common/IASMHook.html" title="interface in cpw.mods.fml.common"><code>IASMHook</code></a>.</dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="canBeDeactivated()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>canBeDeactivated</h4> +<pre>public abstract boolean canBeDeactivated</pre> +<div class="block">If your mod doesn't have a runtime persistent effect on the state of the game, and can be disabled without side effects + (minimap mods, graphical tweak mods) then you can set true here and receive the FMLDeactivationEvent to perform deactivation + tasks. + This does not affect administrative disabling through the system property fml.modStates or the config file fmlModState.properties. + The mod will only be deactivated outside of a running game world - FML will never allow mod deactivation whilst a game server + is running.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>if this mod can be deactivated whilst the game is open.</dd></dl> +<dl> +<dt>Default:</dt> +<dd>false</dd> +</dl> +</li> +</ul> +<a name="guiFactory()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>guiFactory</h4> +<pre>public abstract java.lang.String guiFactory</pre> +<div class="block">An optional GUI factory for this mod. This is the name of a class implementing <a href="../../../../cpw/mods/fml/client/IModGuiFactory.html" title="interface in cpw.mods.fml.client"><code>IModGuiFactory</code></a> that will be instantiated + on the client side, and will have certain configuration/options guis requested from it.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>The name of a class implementing <a href="../../../../cpw/mods/fml/client/IModGuiFactory.html" title="interface in cpw.mods.fml.client"><code>IModGuiFactory</code></a></dd></dl> +<dl> +<dt>Default:</dt> +<dd>""</dd> +</dl> +</li> +</ul> +<a name="customProperties()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>customProperties</h4> +<pre>public abstract <a href="../../../../cpw/mods/fml/common/Mod.CustomProperty.html" title="annotation in cpw.mods.fml.common">Mod.CustomProperty</a>[] customProperties</pre> +<div class="block">A list of custom properties for this mod. Completely up to the mod author if/when they + want to put anything in here.</div> +<dl><dt><span class="strong">Returns:</span></dt><dd>an optional list of custom properties</dd></dl> +<dl> +<dt>Default:</dt> +<dd>{}</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../cpw/mods/fml/common/MissingModsException.html" title="class in cpw.mods.fml.common"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../../cpw/mods/fml/common/Mod.CustomProperty.html" title="annotation in cpw.mods.fml.common"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?cpw/mods/fml/common/Mod.html" target="_top">Frames</a></li> +<li><a href="Mod.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#annotation_type_required_element_summary">Required</a> | </li> +<li><a href="#annotation_type_optional_element_summary">Optional</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#annotation_type_element_detail">Element</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> |
