You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

371 lines
20 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.9.1"/>
  7. <title>Xerces-C++: XMemory Class Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  12. </head>
  13. <body>
  14. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  15. <div id="titlearea">
  16. <table cellspacing="0" cellpadding="0">
  17. <tbody>
  18. <tr style="height: 56px;">
  19. <td style="padding-left: 0.5em;">
  20. <div id="projectname">Xerces-C++
  21. &#160;<span id="projectnumber">3.1.2</span>
  22. </div>
  23. </td>
  24. </tr>
  25. </tbody>
  26. </table>
  27. </div>
  28. <!-- end header part -->
  29. <!-- Generated by Doxygen 1.8.9.1 -->
  30. <div id="navrow1" class="tabs">
  31. <ul class="tablist">
  32. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  33. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  34. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  35. <li><a href="files.html"><span>Files</span></a></li>
  36. </ul>
  37. </div>
  38. <div id="navrow2" class="tabs2">
  39. <ul class="tablist">
  40. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  41. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  42. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  43. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  44. </ul>
  45. </div>
  46. </div><!-- top -->
  47. <div class="header">
  48. <div class="summary">
  49. <a href="classXMemory-members.html">List of all members</a> </div>
  50. <div class="headertitle">
  51. <div class="title">XMemory Class Reference</div> </div>
  52. </div><!--header-->
  53. <div class="contents">
  54. <p>This class makes it possible to override the C++ memory management by adding new/delete operators to this base class.
  55. <a href="classXMemory.html#details">More...</a></p>
  56. <div class="dynheader">
  57. Inheritance diagram for XMemory:</div>
  58. <div class="dyncontent">
  59. <div class="center">
  60. <img src="classXMemory.png" usemap="#XMemory_map" alt=""/>
  61. <map id="XMemory_map" name="XMemory_map">
  62. <area href="classAbstractDOMParser.html" title="This class implements the Document Object Model (DOM) interface. " alt="AbstractDOMParser" shape="rect" coords="255,56,500,80"/>
  63. <area href="classBinInputStream.html" alt="BinInputStream" shape="rect" coords="255,112,500,136"/>
  64. <area href="classBinOutputStream.html" alt="BinOutputStream" shape="rect" coords="255,168,500,192"/>
  65. <area href="classDefaultPanicHandler.html" title="Receive notification of panic. " alt="DefaultPanicHandler" shape="rect" coords="255,224,500,248"/>
  66. <area href="classHash2KeysSetOf.html" alt="Hash2KeysSetOf&lt; THasher &gt;" shape="rect" coords="255,280,500,304"/>
  67. <area href="classHash2KeysSetOfEnumerator.html" alt="Hash2KeysSetOfEnumerator&lt; THasher &gt;" shape="rect" coords="255,336,500,360"/>
  68. <area href="classInputSource.html" title="A single input source for an XML entity. " alt="InputSource" shape="rect" coords="255,392,500,416"/>
  69. <area href="classOutOfMemoryException.html" alt="OutOfMemoryException" shape="rect" coords="255,448,500,472"/>
  70. <area href="classPSVIAttributeList.html" alt="PSVIAttributeList" shape="rect" coords="255,504,500,528"/>
  71. <area href="classPSVIAttributeStorage.html" title="A container for the PSVI contributions to attributes that occur on a particular element. " alt="PSVIAttributeStorage" shape="rect" coords="255,560,500,584"/>
  72. <area href="classPSVIItem.html" alt="PSVIItem" shape="rect" coords="255,616,500,640"/>
  73. <area href="classQName.html" alt="QName" shape="rect" coords="255,672,500,696"/>
  74. <area href="classSAXException.html" title="Encapsulate a general SAX error or warning. " alt="SAXException" shape="rect" coords="255,728,500,752"/>
  75. <area href="classSAXParser.html" title="This class implements the SAX &#39;Parser&#39; interface and should be used by applications wishing to parse ..." alt="SAXParser" shape="rect" coords="255,784,500,808"/>
  76. <area href="classValidationContext.html" alt="ValidationContext" shape="rect" coords="255,840,500,864"/>
  77. <area href="classXMLAttDef.html" title="Represents the core information of an attribute definition. " alt="XMLAttDef" shape="rect" coords="255,896,500,920"/>
  78. <area href="classXMLAttDefList.html" title="This class defines an abstract interface that all validators must support. " alt="XMLAttDefList" shape="rect" coords="255,952,500,976"/>
  79. <area href="classXMLAttr.html" title="This class defines the information about an attribute that will come out of the scanner during parsin..." alt="XMLAttr" shape="rect" coords="255,1008,500,1032"/>
  80. <area href="classXMLBigInteger.html" alt="XMLBigInteger" shape="rect" coords="255,1064,500,1088"/>
  81. <area href="classXMLContentModel.html" title="This class defines the abstract interface for all content models. " alt="XMLContentModel" shape="rect" coords="255,1120,500,1144"/>
  82. <area href="classXMLElementDecl.html" title="This class defines the core information of an element declaration. " alt="XMLElementDecl" shape="rect" coords="255,1176,500,1200"/>
  83. <area href="classXMLEntityDecl.html" title="This class defines that core information that defines an XML entity, no matter what validator is used..." alt="XMLEntityDecl" shape="rect" coords="255,1232,500,1256"/>
  84. <area href="classXMLException.html" alt="XMLException" shape="rect" coords="255,1288,500,1312"/>
  85. <area href="classXMLFileMgr.html" alt="XMLFileMgr" shape="rect" coords="255,1344,500,1368"/>
  86. <area href="classXMLFormatTarget.html" alt="XMLFormatTarget" shape="rect" coords="255,1400,500,1424"/>
  87. <area href="classXMLFormatter.html" title="This class provides the basic formatting capabilities that are required to turn the Unicode based XML..." alt="XMLFormatter" shape="rect" coords="255,1456,500,1480"/>
  88. <area href="classXMLGrammarDescription.html" alt="XMLGrammarDescription" shape="rect" coords="255,1512,500,1536"/>
  89. <area href="classXMLGrammarPool.html" alt="XMLGrammarPool" shape="rect" coords="255,1568,500,1592"/>
  90. <area href="classXMLInteger.html" alt="XMLInteger" shape="rect" coords="255,1624,500,1648"/>
  91. <area href="classXMLLCPTranscoder.html" alt="XMLLCPTranscoder" shape="rect" coords="255,1680,500,1704"/>
  92. <area href="classXMLMutexMgr.html" alt="XMLMutexMgr" shape="rect" coords="255,1736,500,1760"/>
  93. <area href="classXMLNetAccessor.html" alt="XMLNetAccessor" shape="rect" coords="255,1792,500,1816"/>
  94. <area href="classXMLNotationDecl.html" title="This class represents the core information about a notation declaration that all validators must at l..." alt="XMLNotationDecl" shape="rect" coords="255,1848,500,1872"/>
  95. <area href="classXMLNumber.html" alt="XMLNumber" shape="rect" coords="255,1904,500,1928"/>
  96. <area href="classXMLStringTokenizer.html" title="The string tokenizer class breaks a string into tokens. " alt="XMLStringTokenizer" shape="rect" coords="255,1960,500,1984"/>
  97. <area href="classXMLTranscoder.html" title="XMLTranscoder is for transcoding non-local code page encodings, i.e. " alt="XMLTranscoder" shape="rect" coords="255,2016,500,2040"/>
  98. <area href="classXMLTransService.html" alt="XMLTransService" shape="rect" coords="255,2072,500,2096"/>
  99. <area href="classXMLUri.html" alt="XMLUri" shape="rect" coords="255,2128,500,2152"/>
  100. <area href="classXMLURL.html" alt="XMLURL" shape="rect" coords="255,2184,500,2208"/>
  101. <area href="classXMLValidator.html" title="This abstract class provides the interface for all validators. " alt="XMLValidator" shape="rect" coords="255,2240,500,2264"/>
  102. <area href="classXSModel.html" alt="XSModel" shape="rect" coords="255,2296,500,2320"/>
  103. <area href="classXSNamedMap.html" alt="XSNamedMap&lt; TVal &gt;" shape="rect" coords="255,2352,500,2376"/>
  104. <area href="classXSNamedMap.html" alt="XSNamedMap&lt; XSIDCDefinition &gt;" shape="rect" coords="255,2408,500,2432"/>
  105. <area href="classXSNamedMap.html" alt="XSNamedMap&lt; XSObject &gt;" shape="rect" coords="255,2464,500,2488"/>
  106. <area href="classXSNamespaceItem.html" alt="XSNamespaceItem" shape="rect" coords="255,2520,500,2544"/>
  107. <area href="classXSObject.html" alt="XSObject" shape="rect" coords="255,2576,500,2600"/>
  108. <area href="classXSValue.html" alt="XSValue" shape="rect" coords="255,2632,500,2656"/>
  109. </map>
  110. </div></div>
  111. <table class="memberdecls">
  112. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  113. Public Member Functions</h2></td></tr>
  114. <tr><td colspan="2"><div class="groupHeader">The C++ memory management</div></td></tr>
  115. <tr class="memitem:a717678d9deadc627a41fe0dddede9f7f"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#a717678d9deadc627a41fe0dddede9f7f">operator new</a> (size_t size)</td></tr>
  116. <tr class="memdesc:a717678d9deadc627a41fe0dddede9f7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method overrides operator new. <a href="#a717678d9deadc627a41fe0dddede9f7f">More...</a><br /></td></tr>
  117. <tr class="separator:a717678d9deadc627a41fe0dddede9f7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:ac3022fcc968c684a31c1e6a9ede83c10"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#ac3022fcc968c684a31c1e6a9ede83c10">operator new</a> (size_t size, <a class="el" href="classMemoryManager.html">MemoryManager</a> *memMgr)</td></tr>
  119. <tr class="memdesc:ac3022fcc968c684a31c1e6a9ede83c10"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method defines a custom operator new, that will use the provided memory manager to perform the allocation. <a href="#ac3022fcc968c684a31c1e6a9ede83c10">More...</a><br /></td></tr>
  120. <tr class="separator:ac3022fcc968c684a31c1e6a9ede83c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. <tr class="memitem:aeaad885b799ac2188ffd28f76182339c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#aeaad885b799ac2188ffd28f76182339c">operator new</a> (size_t size, void *ptr)</td></tr>
  122. <tr class="memdesc:aeaad885b799ac2188ffd28f76182339c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method overrides placement operator new. <a href="#aeaad885b799ac2188ffd28f76182339c">More...</a><br /></td></tr>
  123. <tr class="separator:aeaad885b799ac2188ffd28f76182339c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:a9da30f1601ea458908cbf150fc2f8f8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#a9da30f1601ea458908cbf150fc2f8f8b">operator delete</a> (void *p)</td></tr>
  125. <tr class="memdesc:a9da30f1601ea458908cbf150fc2f8f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method overrides operator delete. <a href="#a9da30f1601ea458908cbf150fc2f8f8b">More...</a><br /></td></tr>
  126. <tr class="separator:a9da30f1601ea458908cbf150fc2f8f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. <tr class="memitem:a22efbc6459bdbe79f83b7791bba4d1f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#a22efbc6459bdbe79f83b7791bba4d1f6">operator delete</a> (void *p, <a class="el" href="classMemoryManager.html">MemoryManager</a> *memMgr)</td></tr>
  128. <tr class="memdesc:a22efbc6459bdbe79f83b7791bba4d1f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method provides a matching delete for the custom operator new. <a href="#a22efbc6459bdbe79f83b7791bba4d1f6">More...</a><br /></td></tr>
  129. <tr class="separator:a22efbc6459bdbe79f83b7791bba4d1f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:a32ee38b70d412e12f669cfbd86adf623"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#a32ee38b70d412e12f669cfbd86adf623">operator delete</a> (void *p, void *ptr)</td></tr>
  131. <tr class="memdesc:a32ee38b70d412e12f669cfbd86adf623"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method provides a matching delete for the placement new. <a href="#a32ee38b70d412e12f669cfbd86adf623">More...</a><br /></td></tr>
  132. <tr class="separator:a32ee38b70d412e12f669cfbd86adf623"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133. </table><table class="memberdecls">
  134. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  135. Protected Member Functions</h2></td></tr>
  136. <tr><td colspan="2"><div class="groupHeader">Constructor</div></td></tr>
  137. <tr class="memitem:ae5b8adaa10d5d9276b42823f47e06858"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXMemory.html#ae5b8adaa10d5d9276b42823f47e06858">XMemory</a> ()</td></tr>
  138. <tr class="memdesc:ae5b8adaa10d5d9276b42823f47e06858"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protected default constructor. <a href="#ae5b8adaa10d5d9276b42823f47e06858">More...</a><br /></td></tr>
  139. <tr class="separator:ae5b8adaa10d5d9276b42823f47e06858"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. </table>
  141. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  142. <div class="textblock"><p>This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. </p>
  143. <p>This class is used in conjunction with the pluggable memory manager. It allows applications to control Xerces memory management. </p>
  144. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  145. <a class="anchor" id="ae5b8adaa10d5d9276b42823f47e06858"></a>
  146. <div class="memitem">
  147. <div class="memproto">
  148. <table class="mlabels">
  149. <tr>
  150. <td class="mlabels-left">
  151. <table class="memname">
  152. <tr>
  153. <td class="memname">XMemory::XMemory </td>
  154. <td>(</td>
  155. <td class="paramname"></td><td>)</td>
  156. <td></td>
  157. </tr>
  158. </table>
  159. </td>
  160. <td class="mlabels-right">
  161. <span class="mlabels"><span class="mlabel">protected</span></span> </td>
  162. </tr>
  163. </table>
  164. </div><div class="memdoc">
  165. <p>Protected default constructor. </p>
  166. </div>
  167. </div>
  168. <h2 class="groupheader">Member Function Documentation</h2>
  169. <a class="anchor" id="a9da30f1601ea458908cbf150fc2f8f8b"></a>
  170. <div class="memitem">
  171. <div class="memproto">
  172. <table class="memname">
  173. <tr>
  174. <td class="memname">void XMemory::operator delete </td>
  175. <td>(</td>
  176. <td class="paramtype">void *&#160;</td>
  177. <td class="paramname"><em>p</em></td><td>)</td>
  178. <td></td>
  179. </tr>
  180. </table>
  181. </div><div class="memdoc">
  182. <p>This method overrides operator delete. </p>
  183. <dl class="params"><dt>Parameters</dt><dd>
  184. <table class="params">
  185. <tr><td class="paramname">p</td><td>The pointer to the allocated memory </td></tr>
  186. </table>
  187. </dd>
  188. </dl>
  189. </div>
  190. </div>
  191. <a class="anchor" id="a22efbc6459bdbe79f83b7791bba4d1f6"></a>
  192. <div class="memitem">
  193. <div class="memproto">
  194. <table class="memname">
  195. <tr>
  196. <td class="memname">void XMemory::operator delete </td>
  197. <td>(</td>
  198. <td class="paramtype">void *&#160;</td>
  199. <td class="paramname"><em>p</em>, </td>
  200. </tr>
  201. <tr>
  202. <td class="paramkey"></td>
  203. <td></td>
  204. <td class="paramtype"><a class="el" href="classMemoryManager.html">MemoryManager</a> *&#160;</td>
  205. <td class="paramname"><em>memMgr</em>&#160;</td>
  206. </tr>
  207. <tr>
  208. <td></td>
  209. <td>)</td>
  210. <td></td><td></td>
  211. </tr>
  212. </table>
  213. </div><div class="memdoc">
  214. <p>This method provides a matching delete for the custom operator new. </p>
  215. <dl class="params"><dt>Parameters</dt><dd>
  216. <table class="params">
  217. <tr><td class="paramname">p</td><td>The pointer to the allocated memory </td></tr>
  218. <tr><td class="paramname">memMgr</td><td>An application's memory manager </td></tr>
  219. </table>
  220. </dd>
  221. </dl>
  222. </div>
  223. </div>
  224. <a class="anchor" id="a32ee38b70d412e12f669cfbd86adf623"></a>
  225. <div class="memitem">
  226. <div class="memproto">
  227. <table class="memname">
  228. <tr>
  229. <td class="memname">void XMemory::operator delete </td>
  230. <td>(</td>
  231. <td class="paramtype">void *&#160;</td>
  232. <td class="paramname"><em>p</em>, </td>
  233. </tr>
  234. <tr>
  235. <td class="paramkey"></td>
  236. <td></td>
  237. <td class="paramtype">void *&#160;</td>
  238. <td class="paramname"><em>ptr</em>&#160;</td>
  239. </tr>
  240. <tr>
  241. <td></td>
  242. <td>)</td>
  243. <td></td><td></td>
  244. </tr>
  245. </table>
  246. </div><div class="memdoc">
  247. <p>This method provides a matching delete for the placement new. </p>
  248. <dl class="params"><dt>Parameters</dt><dd>
  249. <table class="params">
  250. <tr><td class="paramname">p</td><td>The pointer to the allocated memory </td></tr>
  251. <tr><td class="paramname">ptr</td><td>The memory location where the object had to be allocated </td></tr>
  252. </table>
  253. </dd>
  254. </dl>
  255. </div>
  256. </div>
  257. <a class="anchor" id="a717678d9deadc627a41fe0dddede9f7f"></a>
  258. <div class="memitem">
  259. <div class="memproto">
  260. <table class="memname">
  261. <tr>
  262. <td class="memname">void* XMemory::operator new </td>
  263. <td>(</td>
  264. <td class="paramtype">size_t&#160;</td>
  265. <td class="paramname"><em>size</em></td><td>)</td>
  266. <td></td>
  267. </tr>
  268. </table>
  269. </div><div class="memdoc">
  270. <p>This method overrides operator new. </p>
  271. <dl class="params"><dt>Parameters</dt><dd>
  272. <table class="params">
  273. <tr><td class="paramname">size</td><td>The requested memory size </td></tr>
  274. </table>
  275. </dd>
  276. </dl>
  277. </div>
  278. </div>
  279. <a class="anchor" id="ac3022fcc968c684a31c1e6a9ede83c10"></a>
  280. <div class="memitem">
  281. <div class="memproto">
  282. <table class="memname">
  283. <tr>
  284. <td class="memname">void* XMemory::operator new </td>
  285. <td>(</td>
  286. <td class="paramtype">size_t&#160;</td>
  287. <td class="paramname"><em>size</em>, </td>
  288. </tr>
  289. <tr>
  290. <td class="paramkey"></td>
  291. <td></td>
  292. <td class="paramtype"><a class="el" href="classMemoryManager.html">MemoryManager</a> *&#160;</td>
  293. <td class="paramname"><em>memMgr</em>&#160;</td>
  294. </tr>
  295. <tr>
  296. <td></td>
  297. <td>)</td>
  298. <td></td><td></td>
  299. </tr>
  300. </table>
  301. </div><div class="memdoc">
  302. <p>This method defines a custom operator new, that will use the provided memory manager to perform the allocation. </p>
  303. <dl class="params"><dt>Parameters</dt><dd>
  304. <table class="params">
  305. <tr><td class="paramname">size</td><td>The requested memory size </td></tr>
  306. <tr><td class="paramname">memMgr</td><td>An application's memory manager </td></tr>
  307. </table>
  308. </dd>
  309. </dl>
  310. </div>
  311. </div>
  312. <a class="anchor" id="aeaad885b799ac2188ffd28f76182339c"></a>
  313. <div class="memitem">
  314. <div class="memproto">
  315. <table class="memname">
  316. <tr>
  317. <td class="memname">void* XMemory::operator new </td>
  318. <td>(</td>
  319. <td class="paramtype">size_t&#160;</td>
  320. <td class="paramname"><em>size</em>, </td>
  321. </tr>
  322. <tr>
  323. <td class="paramkey"></td>
  324. <td></td>
  325. <td class="paramtype">void *&#160;</td>
  326. <td class="paramname"><em>ptr</em>&#160;</td>
  327. </tr>
  328. <tr>
  329. <td></td>
  330. <td>)</td>
  331. <td></td><td></td>
  332. </tr>
  333. </table>
  334. </div><div class="memdoc">
  335. <p>This method overrides placement operator new. </p>
  336. <dl class="params"><dt>Parameters</dt><dd>
  337. <table class="params">
  338. <tr><td class="paramname">size</td><td>The requested memory size </td></tr>
  339. <tr><td class="paramname">ptr</td><td>The memory location where the object should be allocated </td></tr>
  340. </table>
  341. </dd>
  342. </dl>
  343. </div>
  344. </div>
  345. <hr/>The documentation for this class was generated from the following file:<ul>
  346. <li><a class="el" href="XMemory_8hpp_source.html">XMemory.hpp</a></li>
  347. </ul>
  348. </div><!-- contents -->
  349. <!-- start footer part -->
  350. <hr class="footer"/><address class="footer"><small>
  351. Generated on Wed Mar 18 2015 10:43:38 for Xerces-C++ by &#160;<a href="http://www.doxygen.org/index.html">
  352. <img class="footer" src="doxygen.png" alt="doxygen"/>
  353. </a> 1.8.9.1
  354. </small></address>
  355. </body>
  356. </html>