cassandra-server
Version:
A thin Javascript wrapper around Apache Cassandra to provide out of the box server support
589 lines (588 loc) • 23.7 kB
HTML
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_67) on Sun Sep 07 15:29:32 CEST 2014 -->
<title>FastByteArrayOutputStream (apache-cassandra API)</title>
<meta name="date" content="2014-09-07">
<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="FastByteArrayOutputStream (apache-cassandra 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="class-use/FastByteArrayOutputStream.html">Use</a></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="../../../../../org/apache/cassandra/io/util/FastByteArrayInputStream.html" title="class in org.apache.cassandra.io.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/cassandra/io/util/FileDataInput.html" title="interface in org.apache.cassandra.io.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/cassandra/io/util/FastByteArrayOutputStream.html" target="_top">Frames</a></li>
<li><a href="FastByteArrayOutputStream.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>Nested | </li>
<li><a href="#field_summary">Field</a> | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field_detail">Field</a> | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</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">org.apache.cassandra.io.util</div>
<h2 title="Class FastByteArrayOutputStream" class="title">Class FastByteArrayOutputStream</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.io.OutputStream</li>
<li>
<ul class="inheritance">
<li>org.apache.cassandra.io.util.FastByteArrayOutputStream</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">FastByteArrayOutputStream</span>
extends java.io.OutputStream</pre>
<div class="block">A specialized <code>OutputStream</code> for class for writing content to an
(internal) byte array. As bytes are written to this stream, the byte array
may be expanded to hold more bytes. When the writing is considered to be
finished, a copy of the byte array can be requested from the class.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><code>ByteArrayOutputStream</code></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#buf">buf</a></strong></code>
<div class="block">The byte array containing the bytes written.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#count">count</a></strong></code>
<div class="block">The number of bytes written.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#FastByteArrayOutputStream()">FastByteArrayOutputStream</a></strong>()</code>
<div class="block">Constructs a new ByteArrayOutputStream with a default size of 32 bytes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#FastByteArrayOutputStream(int)">FastByteArrayOutputStream</a></strong>(int size)</code>
<div class="block">Constructs a new <code>ByteArrayOutputStream</code> with a default size of
<code>size</code> bytes.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#close()">close</a></strong>()</code>
<div class="block">Closes this stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#reset()">reset</a></strong>()</code>
<div class="block">Resets this stream to the beginning of the underlying byte array.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#size()">size</a></strong>()</code>
<div class="block">Returns the total number of bytes written to this stream so far.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toByteArray()">toByteArray</a></strong>()</code>
<div class="block">Returns the contents of this ByteArrayOutputStream as a byte array.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString()">toString</a></strong>()</code>
<div class="block">Returns the contents of this ByteArrayOutputStream as a string.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString(int)">toString</a></strong>(int hibyte)</code>
<div class="block"><strong>Deprecated.</strong>
<div class="block"><i>Use <a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString()"><code>toString()</code></a>.</i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString(java.lang.String)">toString</a></strong>(java.lang.String enc)</code>
<div class="block">Returns the contents of this ByteArrayOutputStream as a string converted
according to the encoding declared in <code>enc</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#write(byte[],%20int,%20int)">write</a></strong>(byte[] buffer,
int offset,
int len)</code>
<div class="block">Writes <code>count</code> bytes from the byte array <code>buffer</code> starting at
offset <code>index</code> to this stream.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#write(java.nio.ByteBuffer)">write</a></strong>(java.nio.ByteBuffer buffer)</code> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#write(int)">write</a></strong>(int oneByte)</code>
<div class="block">Writes the specified byte <code>oneByte</code> to the OutputStream.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#writeTo(java.io.OutputStream)">writeTo</a></strong>(java.io.OutputStream out)</code>
<div class="block">Takes the contents of this stream and writes it to the output stream
<code>out</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.io.OutputStream">
<!-- -->
</a>
<h3>Methods inherited from class java.io.OutputStream</h3>
<code>flush, write</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="buf">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buf</h4>
<pre>protected byte[] buf</pre>
<div class="block">The byte array containing the bytes written.</div>
</li>
</ul>
<a name="count">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>count</h4>
<pre>protected int count</pre>
<div class="block">The number of bytes written.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FastByteArrayOutputStream()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FastByteArrayOutputStream</h4>
<pre>public FastByteArrayOutputStream()</pre>
<div class="block">Constructs a new ByteArrayOutputStream with a default size of 32 bytes.
If more than 32 bytes are written to this instance, the underlying byte
array will expand.</div>
</li>
</ul>
<a name="FastByteArrayOutputStream(int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FastByteArrayOutputStream</h4>
<pre>public FastByteArrayOutputStream(int size)</pre>
<div class="block">Constructs a new <code>ByteArrayOutputStream</code> with a default size of
<code>size</code> bytes. If more than <code>size</code> bytes are written to this
instance, the underlying byte array will expand.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>size</code> - initial size for the underlying byte array, must be
non-negative.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if <code>size</code> < 0.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public void close()
throws java.io.IOException</pre>
<div class="block">Closes this stream. This releases system resources used for this stream.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>close</code> in interface <code>java.io.Closeable</code></dd>
<dt><strong>Specified by:</strong></dt>
<dd><code>close</code> in interface <code>java.lang.AutoCloseable</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code>close</code> in class <code>java.io.OutputStream</code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an error occurs while attempting to close this stream.</dd></dl>
</li>
</ul>
<a name="reset()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>public void reset()</pre>
<div class="block">Resets this stream to the beginning of the underlying byte array. All
subsequent writes will overwrite any bytes previously stored in this
stream.</div>
</li>
</ul>
<a name="size()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>public int size()</pre>
<div class="block">Returns the total number of bytes written to this stream so far.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of bytes written to this stream.</dd></dl>
</li>
</ul>
<a name="toByteArray()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre>public byte[] toByteArray()</pre>
<div class="block">Returns the contents of this ByteArrayOutputStream as a byte array. Any
changes made to the receiver after returning will not be reflected in the
byte array returned to the caller.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>this stream's current contents as a byte array.</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public java.lang.String toString()</pre>
<div class="block">Returns the contents of this ByteArrayOutputStream as a string. Any
changes made to the receiver after returning will not be reflected in the
string returned to the caller.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>this stream's current contents as a string.</dd></dl>
</li>
</ul>
<a name="toString(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>@Deprecated
public java.lang.String toString(int hibyte)</pre>
<div class="block"><span class="strong">Deprecated.</span> <i>Use <a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString()"><code>toString()</code></a>.</i></div>
<div class="block">Returns the contents of this ByteArrayOutputStream as a string. Each byte
<code>b</code> in this stream is converted to a character <code>c</code> using the
following function:
<code>c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))</code>. This method is
deprecated and either <a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString()"><code>toString()</code></a> or <a href="../../../../../org/apache/cassandra/io/util/FastByteArrayOutputStream.html#toString(java.lang.String)"><code>toString(String)</code></a>
should be used.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>hibyte</code> - the high byte of each resulting Unicode character.</dd>
<dt><span class="strong">Returns:</span></dt><dd>this stream's current contents as a string with the high byte set
to <code>hibyte</code>.</dd></dl>
</li>
</ul>
<a name="toString(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public java.lang.String toString(java.lang.String enc)
throws java.io.UnsupportedEncodingException</pre>
<div class="block">Returns the contents of this ByteArrayOutputStream as a string converted
according to the encoding declared in <code>enc</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>enc</code> - a string representing the encoding to use when translating
this stream to a string.</dd>
<dt><span class="strong">Returns:</span></dt><dd>this stream's current contents as an encoded string.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.UnsupportedEncodingException</code> - if the provided encoding is not supported.</dd></dl>
</li>
</ul>
<a name="write(byte[], int, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public void write(byte[] buffer,
int offset,
int len)</pre>
<div class="block">Writes <code>count</code> bytes from the byte array <code>buffer</code> starting at
offset <code>index</code> to this stream.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code>write</code> in class <code>java.io.OutputStream</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>buffer</code> - the buffer to be written.</dd><dd><code>offset</code> - the initial position in <code>buffer</code> to retrieve bytes.</dd><dd><code>len</code> - the number of bytes of <code>buffer</code> to write.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if <code>buffer</code> is <code>null</code>.</dd>
<dd><code>java.lang.IndexOutOfBoundsException</code> - if <code>offset < 0</code> or <code>len < 0</code>, or if
<code>offset + len</code> is greater than the length of
<code>buffer</code>.</dd></dl>
</li>
</ul>
<a name="write(java.nio.ByteBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public void write(java.nio.ByteBuffer buffer)</pre>
</li>
</ul>
<a name="write(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public void write(int oneByte)</pre>
<div class="block">Writes the specified byte <code>oneByte</code> to the OutputStream. Only the
low order byte of <code>oneByte</code> is written.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code>write</code> in class <code>java.io.OutputStream</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>oneByte</code> - the byte to be written.</dd></dl>
</li>
</ul>
<a name="writeTo(java.io.OutputStream)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>writeTo</h4>
<pre>public void writeTo(java.io.OutputStream out)
throws java.io.IOException</pre>
<div class="block">Takes the contents of this stream and writes it to the output stream
<code>out</code>.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>out</code> - an OutputStream on which to write the contents of this stream.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an error occurs while writing to <code>out</code>.</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="class-use/FastByteArrayOutputStream.html">Use</a></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="../../../../../org/apache/cassandra/io/util/FastByteArrayInputStream.html" title="class in org.apache.cassandra.io.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/cassandra/io/util/FileDataInput.html" title="interface in org.apache.cassandra.io.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/cassandra/io/util/FastByteArrayOutputStream.html" target="_top">Frames</a></li>
<li><a href="FastByteArrayOutputStream.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>Nested | </li>
<li><a href="#field_summary">Field</a> | </li>
<li><a href="#constructor_summary">Constr</a> | </li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field_detail">Field</a> | </li>
<li><a href="#constructor_detail">Constr</a> | </li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright © 2014 The Apache Software Foundation</small></p>
</body>
</html>