<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" value="application/xhtml+xml" />
  <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U=" />
  <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf" />
  <style type="text/css" media="screen,projection"><!--
    @import url("../../www/magick.css");
  --></style>
  <link rel="shortcut icon" href="../../images/wand.ico"  type="images/vnd.microsoft.icon"/>
  <title>ImageMagick: MagickWand, C API for ImageMagick: Wand Methods</title>
  <meta http-equiv="Content-Language" content="en-US"/>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
  <meta name="Generator" content="PHP"/>
  <meta name="Keywords" content="magickwc, api, for, imagemagick:, wmethods, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
  <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.  ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.  The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
  <meta name="Rating" content="GENERAL"/>
  <meta name="Robots" content="INDEX, FOLLOW"/>
  <meta name="Generator" content="ImageMagick Studio LLC"/>
  <meta name="Author" content="ImageMagick Studio LLC"/>
  <meta name="Revisit-after" content="2 DAYS"/>
  <meta name="Resource-type" content="document"/>
  <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
  <meta name="Distribution" content="Global"/>
</head>

<body id="www-imagemagick-org">
<div class="titlebar">
<a href="../../index.html">
  <img src="../../images/script.png" alt="[ImageMagick]"
  style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>
<a href="http://www.networkredux.com">
  <img src="../../images/networkredux.png" alt="[sponsor]"
  style="margin: 45px auto; border: 0px; float: left;" /></a>
<a href="http://www.imagemagick.org/discourse-server/">
  <img src="../../images/logo.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
<a href="../../index.html">
  <img src="../../images/sprite.jpg" alt=""
  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>
</div>

<div class="eastbar">

<div class="menu">
  <a href="../../index.html">About ImageMagick</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/command-line-tools.html">Command-line Tools</a>
</div>
<div class="sub">
    <a href="../../www/command-line-processing.html">Processing</a>
</div>
<div class="sub">
    <a href="../../www/command-line-options.html">Options</a>
</div>
<div class="sub">
    <a href="http://www.imagemagick.org/Usage/">Usage</a>
</div>
<div class="menu">
  <a href="../../www/api.html">Program Interfaces</a>
</div>
<div class="sub">
    <a href="../../www/magick-wand.html">MagickWand</a>
</div>
<div class="sub">
    <a href="../../www/magick-core.html">MagickCore</a>
</div>
<div class="sub">
    <a href="../../www/perl-magick.html">PerlMagick</a>
</div>
<div class="sub">
    <a href="../../Magick++/">Magick++</a>
</div>
<div class="menu">
  <a href="../../www/architecture.html">Architecture</a>
</div>
<div class="sep"></div>
<div  class="menu">
   <a href="../../www/install-source.html">Install from Source</a>
</div>
<div class="sub">
    <a href="../../www/install-source.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../../www/install-source.html#windows">Windows</a>
 </div>
<div class="menu">
  <a href="../../www/binary-releases.html">Binary Releases</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#unix">Unix</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#macosx">Mac OS X</a>
</div>
<div class="sub">
    <a href="../../www/binary-releases.html#windows">Windows</a>
</div>
<div class="menu">
  <a href="../../www/resources.html">Resources</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/download.html">Download</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../http://www.imagemagick.org/script/search.php">Search</a>
</div>
<div class="sep"></div>
<div class="menu">
  <a href="../../www/sitemap.html">Site Map</a>
</div>
<div  class="sub">
    <a href="../../www/links.html">Links</a>
</div>
<div class="sep"></div>
<div  class="menu">
  <a href="../../www/sponsors.html">Sponsors:</a>

<div class="sponsbox">
<div  class="sponsor">
   <a href="http://www.hygi.de">Reinigungsmittel</a><!-- 201002000400+ -->
</div>
<div  class="sponsor">
  <a href="http://www.tomsgutscheine.de">Tom's Gutscheine</a><!-- 201005010360 invendio.de-->
</div>
<div  class="sponsor">
  <a href="http://www.online-kredit-index.de">Kredit</a><!-- 201006010120 Buchhorn -->
</div>
<div  class="sponsor">
  <a href="http://www.blumenversender.com">Blumenversand</a><!-- 201005010120 -->
</div>
<div  class="sponsor">
  <a href="http://www.print24.de/">Druckerei</a><!-- 201009010720 -->
</div>
<div  class="sponsor">
   <a href="http://www.goyax.de">Börse</a><!-- 201004010240 Gewiese digital-finance.de -->
</div>
<div  class="sponsor">
   <a href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
</div>
<div  class="sponsor">
  <a href="http://www.who-sells-it.com/">Free Catalogs</a><!-- 201002010000 -->
</div>
</div>
</div>


</div>

<div class="main">

<p class="navigation-index">[<a href="#ClearMagickWand">ClearMagickWand</a> &bull; <a href="#CloneMagickWand">CloneMagickWand</a> &bull; <a href="#DestroyMagickWand">DestroyMagickWand</a> &bull; <a href="#IsMagickWand">IsMagickWand</a> &bull; <a href="#MagickClearException">MagickClearException</a> &bull; <a href="#MagickGetException">MagickGetException</a> &bull; <a href="#MagickGetExceptionType">MagickGetExceptionType</a> &bull; <a href="#MagickGetIteratorIndex">MagickGetIteratorIndex</a> &bull; <a href="#MagickQueryConfigureOption">MagickQueryConfigureOption</a> &bull; <a href="#MagickQueryConfigureOptions">MagickQueryConfigureOptions</a> &bull; <a href="#MagickQueryFontMetrics">MagickQueryFontMetrics</a> &bull; <a href="#MagickQueryMultilineFontMetrics">MagickQueryMultilineFontMetrics</a> &bull; <a href="#MagickQueryFonts">MagickQueryFonts</a> &bull; <a href="#MagickQueryFonts">MagickQueryFonts</a> &bull; <a href="#MagickRelinquishMemory">MagickRelinquishMemory</a> &bull; <a href="#MagickResetIterator">MagickResetIterator</a> &bull; <a href="#MagickSetFirstIterator">MagickSetFirstIterator</a> &bull; <a href="#MagickSetIteratorIndex">MagickSetIteratorIndex</a> &bull; <a href="#MagickSetLastIterator">MagickSetLastIterator</a> &bull; <a href="#MagickWandGenesis">MagickWandGenesis</a> &bull; <a href="#MagickWandTerminus">MagickWandTerminus</a> &bull; <a href="#NewMagickWand">NewMagickWand</a> &bull; <a href="#NewMagickWandFromImage">NewMagickWandFromImage</a>]</p>

<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="ClearMagickWand">ClearMagickWand</a></h2>
<div class="doc-section">

<p>ClearMagickWand() clears resources associated with the wand.</p></ol>

<p>The format of the ClearMagickWand method is:</p>

<pre class="code">
  void ClearMagickWand(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="CloneMagickWand">CloneMagickWand</a></h2>
<div class="doc-section">

<p>CloneMagickWand() makes an exact copy of the specified wand.</p></ol>

<p>The format of the CloneMagickWand method is:</p>

<pre class="code">
  MagickWand *CloneMagickWand(const MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="DestroyMagickWand">DestroyMagickWand</a></h2>
<div class="doc-section">

<p>DestroyMagickWand() deallocates memory associated with an MagickWand.</p></ol>

<p>The format of the DestroyMagickWand method is:</p>

<pre class="code">
  MagickWand *DestroyMagickWand(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="IsMagickWand">IsMagickWand</a></h2>
<div class="doc-section">

<p>IsMagickWand() returns MagickTrue if the wand is verified as a magick wand.</p></ol>

<p>The format of the IsMagickWand method is:</p>

<pre class="code">
  MagickBooleanType IsMagickWand(const MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickClearException">MagickClearException</a></h2>
<div class="doc-section">

<p>MagickClearException() clears any exceptions associated with the wand.</p></ol>

<p>The format of the MagickClearException method is:</p>

<pre class="code">
  MagickBooleanType MagickClearException(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickGetException">MagickGetException</a></h2>
<div class="doc-section">

<p>MagickGetException() returns the severity, reason, and description of any error that occurs when using other methods in this API.</p></ol>

<p>The format of the MagickGetException method is:</p>

<pre class="code">
  char *MagickGetException(const MagickWand *wand,ExceptionType *severity)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

<h5>severity</h5>
<ol><p>the severity of the error is returned here.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickGetExceptionType">MagickGetExceptionType</a></h2>
<div class="doc-section">

<p>MagickGetExceptionType() returns the exception type associated with the wand.  If no exception has occurred, UndefinedExceptionType is returned.</p></ol>

<p>The format of the MagickGetExceptionType method is:</p>

<pre class="code">
  ExceptionType MagickGetExceptionType(const MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickGetIteratorIndex">MagickGetIteratorIndex</a></h2>
<div class="doc-section">

<p>MagickGetIteratorIndex() returns the position of the iterator in the image list.</p></ol>

<p>The format of the MagickGetIteratorIndex method is:</p>

<pre class="code">
  long MagickGetIteratorIndex(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryConfigureOption">MagickQueryConfigureOption</a></h2>
<div class="doc-section">

<p>MagickQueryConfigureOption() returns the value associated with the specified configure option.</p></ol>

<p>The format of the MagickQueryConfigureOption function is:</p>

<pre class="text">
  char *MagickQueryConfigureOption(const char *option)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>option</h5>
<ol><p>the option name.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryConfigureOptions">MagickQueryConfigureOptions</a></h2>
<div class="doc-section">

<p>MagickQueryConfigureOptions() returns any configure options that match the specified pattern (e.g.  "*" for all).  Options include NAME, VERSION, LIB_VERSION, etc.</p></ol>

<p>The format of the MagickQueryConfigureOptions function is:</p>

<pre class="text">
  char **MagickQueryConfigureOptions(const char *pattern,
    unsigned long *number_options)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>pattern</h5>
<ol><p>Specifies a pointer to a text string containing a pattern.</p></ol>

<h5>number_options</h5>
<ol><p>Returns the number of configure options in the list.</p></ol>


 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryFontMetrics">MagickQueryFontMetrics</a></h2>
<div class="doc-section">

<p>MagickQueryFontMetrics() returns a 13 element array representing the following font metrics:</p>

<pre class="text">
      Element Description
      -------------------------------------------------
      0 character width
      1 character height
      2 ascender
      3 descender
      4 text width
      5 text height
      6 maximum horizontal advance
      7 bounding box: x1
      8 bounding box: y1
      9 bounding box: x2
     10 bounding box: y2
     11 origin: x
     12 origin: y
</pre>

<p>The format of the MagickQueryFontMetrics method is:</p>

<pre class="code">
  double *MagickQueryFontMetrics(MagickWand *wand,
    const DrawingWand *drawing_wand,const char *text)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the Magick wand.</p></ol>

<h5>drawing_wand</h5>
<ol><p>the drawing wand.</p></ol>

<h5>text</h5>
<ol><p>the text.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryMultilineFontMetrics">MagickQueryMultilineFontMetrics</a></h2>
<div class="doc-section">

<p>MagickQueryMultilineFontMetrics() returns a 13 element array representing the following font metrics:</p>

<pre class="text">
      Element Description
      -------------------------------------------------
      0 character width
      1 character height
      2 ascender
      3 descender
      4 text width
      5 text height
      6 maximum horizontal advance
      7 bounding box: x1
      8 bounding box: y1
      9 bounding box: x2
     10 bounding box: y2
     11 origin: x
     12 origin: y
</pre>

<p>This method is like MagickQueryFontMetrics() but it returns the maximum text width and height for multiple lines of text.</p></ol>

<p>The format of the MagickQueryFontMetrics method is:</p>

<pre class="code">
  double *MagickQueryMultilineFontMetrics(MagickWand *wand,
    const DrawingWand *drawing_wand,const char *text)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the Magick wand.</p></ol>

<h5>drawing_wand</h5>
<ol><p>the drawing wand.</p></ol>

<h5>text</h5>
<ol><p>the text.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryFonts">MagickQueryFonts</a></h2>
<div class="doc-section">

<p>MagickQueryFonts() returns any font that match the specified pattern (e.g. "*" for all).</p></ol>

<p>The format of the MagickQueryFonts function is:</p>

<pre class="text">
  char **MagickQueryFonts(const char *pattern,unsigned long *number_fonts)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>pattern</h5>
<ol><p>Specifies a pointer to a text string containing a pattern.</p></ol>

<h5>number_fonts</h5>
<ol><p>Returns the number of fonts in the list.</p></ol>


 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickQueryFonts">MagickQueryFonts</a></h2>
<div class="doc-section">

<p>MagickQueryFonts() returns any image formats that match the specified pattern (e.g.  "*" for all).</p></ol>

<p>The format of the MagickQueryFonts function is:</p>

<pre class="text">
  char **MagickQueryFonts(const char *pattern,
    unsigned long *number_formats)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>pattern</h5>
<ol><p>Specifies a pointer to a text string containing a pattern.</p></ol>

<h5>number_formats</h5>
<ol><p>This integer returns the number of image formats in the list.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickRelinquishMemory">MagickRelinquishMemory</a></h2>
<div class="doc-section">

<p>MagickRelinquishMemory() relinquishes memory resources returned by such methods as MagickIdentifyImage(), MagickGetException(), etc.</p></ol>

<p>The format of the MagickRelinquishMemory method is:</p>

<pre class="code">
  void *MagickRelinquishMemory(void *resource)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>resource</h5>
<ol><p>Relinquish the memory associated with this resource.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickResetIterator">MagickResetIterator</a></h2>
<div class="doc-section">

<p>MagickResetIterator() resets the wand iterator.  Use it in conjunction with MagickNextImage() to iterate over all the images in a wand container.</p></ol>

<p>The format of the MagickResetIterator method is:</p>

<pre class="code">
  void MagickResetIterator(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickSetFirstIterator">MagickSetFirstIterator</a></h2>
<div class="doc-section">

<p>MagickSetFirstIterator() sets the wand iterator to the first image.</p></ol>

<p>The format of the MagickSetFirstIterator method is:</p>

<pre class="code">
  void MagickSetFirstIterator(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickSetIteratorIndex">MagickSetIteratorIndex</a></h2>
<div class="doc-section">

<p>MagickSetIteratorIndex() set the iterator to the position in the image list specified with the index parameter.</p></ol>

<p>The format of the MagickSetIteratorIndex method is:</p>

<pre class="code">
  MagickBooleanType MagickSetIteratorIndex(MagickWand *wand,
    const long index)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

<h5>index</h5>
<ol><p>the scene number.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickSetLastIterator">MagickSetLastIterator</a></h2>
<div class="doc-section">

<p>MagickSetLastIterator() sets the wand iterator to the last image.</p></ol>

<p>The format of the MagickSetLastIterator method is:</p>

<pre class="code">
  void MagickSetLastIterator(MagickWand *wand)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>wand</h5>
<ol><p>the magick wand.</p></ol>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickWandGenesis">MagickWandGenesis</a></h2>
<div class="doc-section">

<p>MagickWandGenesis() initializes the MagickWand environment.</p></ol>

<p>The format of the MagickWandGenesis method is:</p>

<pre class="code">
  void MagickWandGenesis(void)
</pre>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="MagickWandTerminus">MagickWandTerminus</a></h2>
<div class="doc-section">

<p>MagickWandTerminus() terminates the MagickWand environment.</p></ol>

<p>The format of the MaickWandTerminus method is:</p>

<pre class="code">
  void MagickWandTerminus(void)
</pre>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="NewMagickWand">NewMagickWand</a></h2>
<div class="doc-section">

<p>NewMagickWand() returns a wand required for all other methods in the API.</p></ol>

<p>The format of the NewMagickWand method is:</p>

<pre class="code">
  MagickWand *NewMagickWand(void)
</pre>

 </div>
<h2><a href="http://www.imagemagick.org/api/MagickWand/magick-wand
_8c.html" target="source" name="NewMagickWandFromImage">NewMagickWandFromImage</a></h2>
<div class="doc-section">

<p>NewMagickWandFromImage() returns a wand with an image.</p></ol>

<p>The format of the NewMagickWandFromImage method is:</p>

<pre class="code">
  MagickWand *NewMagickWandFromImage(const Image *image)
</pre>

<p>A description of each parameter follows:</p></ol>

<h5>image</h5>
<ol><p>the image.</p></ol>

 </div>

</div>

<div id="linkbar">
 <!--    <span id="linkbar-west">&nbsp;</span>  -->
    <span id="linkbar-center">
      <a href="http://www.imagemagick.org/discourse-server/">Discourse Server</a> &bull;
    <a href="http://studio.webbyland.com/ImageMagick/MagickStudio/scripts/MagickStudio.cgi">Studio</a>
    </span>
    <span id="linkbar-east">&nbsp;</span>
  </div>
  <div class="footer">
    <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>
    <span id="footer-east"> <a href="../http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>
  </div>
  <div style="clear: both; margin: 0; width: 100%; "></div>
</body>
</html>
