1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
|
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM c:/mozilla/dom/public/idl/core/nsIDOMNode.idl
*/
#ifndef __gen_nsIDOMNode_h__
#define __gen_nsIDOMNode_h__
#ifndef __gen_domstubs_h__
#include "domstubs.h"
#endif
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: nsIDOMNode */
#define NS_IDOMNODE_IID_STR "a6cf907c-15b3-11d2-932e-00805f8add32"
#define NS_IDOMNODE_IID \
{0xa6cf907c, 0x15b3, 0x11d2, \
{ 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 }}
class NS_NO_VTABLE nsIDOMNode : public nsISupports {
public:
NS_DEFINE_STATIC_IID_ACCESSOR(NS_IDOMNODE_IID)
/**
* The nsIDOMNode interface is the primary datatype for the entire
* Document Object Model.
* It represents a single node in the document tree.
*
* For more information on this interface please see
* http://www.w3.org/TR/DOM-Level-2-Core/
*
* @status FROZEN
*/
enum { ELEMENT_NODE = 1U };
enum { ATTRIBUTE_NODE = 2U };
enum { TEXT_NODE = 3U };
enum { CDATA_SECTION_NODE = 4U };
enum { ENTITY_REFERENCE_NODE = 5U };
enum { ENTITY_NODE = 6U };
enum { PROCESSING_INSTRUCTION_NODE = 7U };
enum { COMMENT_NODE = 8U };
enum { DOCUMENT_NODE = 9U };
enum { DOCUMENT_TYPE_NODE = 10U };
enum { DOCUMENT_FRAGMENT_NODE = 11U };
enum { NOTATION_NODE = 12U };
/* readonly attribute DOMString nodeName; */
NS_IMETHOD GetNodeName(nsAString & aNodeName) = 0;
/* attribute DOMString nodeValue; */
NS_IMETHOD GetNodeValue(nsAString & aNodeValue) = 0;
NS_IMETHOD SetNodeValue(const nsAString & aNodeValue) = 0;
/* readonly attribute unsigned short nodeType; */
NS_IMETHOD GetNodeType(PRUint16 *aNodeType) = 0;
/* readonly attribute nsIDOMNode parentNode; */
NS_IMETHOD GetParentNode(nsIDOMNode * *aParentNode) = 0;
/* readonly attribute nsIDOMNodeList childNodes; */
NS_IMETHOD GetChildNodes(nsIDOMNodeList * *aChildNodes) = 0;
/* readonly attribute nsIDOMNode firstChild; */
NS_IMETHOD GetFirstChild(nsIDOMNode * *aFirstChild) = 0;
/* readonly attribute nsIDOMNode lastChild; */
NS_IMETHOD GetLastChild(nsIDOMNode * *aLastChild) = 0;
/* readonly attribute nsIDOMNode previousSibling; */
NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) = 0;
/* readonly attribute nsIDOMNode nextSibling; */
NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) = 0;
/* readonly attribute nsIDOMNamedNodeMap attributes; */
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap * *aAttributes) = 0;
/* readonly attribute nsIDOMDocument ownerDocument; */
NS_IMETHOD GetOwnerDocument(nsIDOMDocument * *aOwnerDocument) = 0;
/* nsIDOMNode insertBefore (in nsIDOMNode newChild, in nsIDOMNode refChild) raises (DOMException); */
NS_IMETHOD InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval) = 0;
/* nsIDOMNode replaceChild (in nsIDOMNode newChild, in nsIDOMNode oldChild) raises (DOMException); */
NS_IMETHOD ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval) = 0;
/* nsIDOMNode removeChild (in nsIDOMNode oldChild) raises (DOMException); */
NS_IMETHOD RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval) = 0;
/* nsIDOMNode appendChild (in nsIDOMNode newChild) raises (DOMException); */
NS_IMETHOD AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval) = 0;
/* boolean hasChildNodes (); */
NS_IMETHOD HasChildNodes(PRBool *_retval) = 0;
/* nsIDOMNode cloneNode (in boolean deep); */
NS_IMETHOD CloneNode(PRBool deep, nsIDOMNode **_retval) = 0;
/* void normalize (); */
NS_IMETHOD Normalize(void) = 0;
/* boolean isSupported (in DOMString feature, in DOMString version); */
NS_IMETHOD IsSupported(const nsAString & feature, const nsAString & version, PRBool *_retval) = 0;
/* readonly attribute DOMString namespaceURI; */
NS_IMETHOD GetNamespaceURI(nsAString & aNamespaceURI) = 0;
/* attribute DOMString prefix; */
NS_IMETHOD GetPrefix(nsAString & aPrefix) = 0;
NS_IMETHOD SetPrefix(const nsAString & aPrefix) = 0;
/* readonly attribute DOMString localName; */
NS_IMETHOD GetLocalName(nsAString & aLocalName) = 0;
/* boolean hasAttributes (); */
NS_IMETHOD HasAttributes(PRBool *_retval) = 0;
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMNODE \
NS_IMETHOD GetNodeName(nsAString & aNodeName); \
NS_IMETHOD GetNodeValue(nsAString & aNodeValue); \
NS_IMETHOD SetNodeValue(const nsAString & aNodeValue); \
NS_IMETHOD GetNodeType(PRUint16 *aNodeType); \
NS_IMETHOD GetParentNode(nsIDOMNode * *aParentNode); \
NS_IMETHOD GetChildNodes(nsIDOMNodeList * *aChildNodes); \
NS_IMETHOD GetFirstChild(nsIDOMNode * *aFirstChild); \
NS_IMETHOD GetLastChild(nsIDOMNode * *aLastChild); \
NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling); \
NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling); \
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap * *aAttributes); \
NS_IMETHOD GetOwnerDocument(nsIDOMDocument * *aOwnerDocument); \
NS_IMETHOD InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval); \
NS_IMETHOD ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval); \
NS_IMETHOD RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval); \
NS_IMETHOD AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval); \
NS_IMETHOD HasChildNodes(PRBool *_retval); \
NS_IMETHOD CloneNode(PRBool deep, nsIDOMNode **_retval); \
NS_IMETHOD Normalize(void); \
NS_IMETHOD IsSupported(const nsAString & feature, const nsAString & version, PRBool *_retval); \
NS_IMETHOD GetNamespaceURI(nsAString & aNamespaceURI); \
NS_IMETHOD GetPrefix(nsAString & aPrefix); \
NS_IMETHOD SetPrefix(const nsAString & aPrefix); \
NS_IMETHOD GetLocalName(nsAString & aLocalName); \
NS_IMETHOD HasAttributes(PRBool *_retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMNODE(_to) \
NS_IMETHOD GetNodeName(nsAString & aNodeName) { return _to GetNodeName(aNodeName); } \
NS_IMETHOD GetNodeValue(nsAString & aNodeValue) { return _to GetNodeValue(aNodeValue); } \
NS_IMETHOD SetNodeValue(const nsAString & aNodeValue) { return _to SetNodeValue(aNodeValue); } \
NS_IMETHOD GetNodeType(PRUint16 *aNodeType) { return _to GetNodeType(aNodeType); } \
NS_IMETHOD GetParentNode(nsIDOMNode * *aParentNode) { return _to GetParentNode(aParentNode); } \
NS_IMETHOD GetChildNodes(nsIDOMNodeList * *aChildNodes) { return _to GetChildNodes(aChildNodes); } \
NS_IMETHOD GetFirstChild(nsIDOMNode * *aFirstChild) { return _to GetFirstChild(aFirstChild); } \
NS_IMETHOD GetLastChild(nsIDOMNode * *aLastChild) { return _to GetLastChild(aLastChild); } \
NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) { return _to GetPreviousSibling(aPreviousSibling); } \
NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) { return _to GetNextSibling(aNextSibling); } \
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap * *aAttributes) { return _to GetAttributes(aAttributes); } \
NS_IMETHOD GetOwnerDocument(nsIDOMDocument * *aOwnerDocument) { return _to GetOwnerDocument(aOwnerDocument); } \
NS_IMETHOD InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval) { return _to InsertBefore(newChild, refChild, _retval); } \
NS_IMETHOD ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval) { return _to ReplaceChild(newChild, oldChild, _retval); } \
NS_IMETHOD RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval) { return _to RemoveChild(oldChild, _retval); } \
NS_IMETHOD AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval) { return _to AppendChild(newChild, _retval); } \
NS_IMETHOD HasChildNodes(PRBool *_retval) { return _to HasChildNodes(_retval); } \
NS_IMETHOD CloneNode(PRBool deep, nsIDOMNode **_retval) { return _to CloneNode(deep, _retval); } \
NS_IMETHOD Normalize(void) { return _to Normalize(); } \
NS_IMETHOD IsSupported(const nsAString & feature, const nsAString & version, PRBool *_retval) { return _to IsSupported(feature, version, _retval); } \
NS_IMETHOD GetNamespaceURI(nsAString & aNamespaceURI) { return _to GetNamespaceURI(aNamespaceURI); } \
NS_IMETHOD GetPrefix(nsAString & aPrefix) { return _to GetPrefix(aPrefix); } \
NS_IMETHOD SetPrefix(const nsAString & aPrefix) { return _to SetPrefix(aPrefix); } \
NS_IMETHOD GetLocalName(nsAString & aLocalName) { return _to GetLocalName(aLocalName); } \
NS_IMETHOD HasAttributes(PRBool *_retval) { return _to HasAttributes(_retval); }
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMNODE(_to) \
NS_IMETHOD GetNodeName(nsAString & aNodeName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNodeName(aNodeName); } \
NS_IMETHOD GetNodeValue(nsAString & aNodeValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNodeValue(aNodeValue); } \
NS_IMETHOD SetNodeValue(const nsAString & aNodeValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNodeValue(aNodeValue); } \
NS_IMETHOD GetNodeType(PRUint16 *aNodeType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNodeType(aNodeType); } \
NS_IMETHOD GetParentNode(nsIDOMNode * *aParentNode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParentNode(aParentNode); } \
NS_IMETHOD GetChildNodes(nsIDOMNodeList * *aChildNodes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildNodes(aChildNodes); } \
NS_IMETHOD GetFirstChild(nsIDOMNode * *aFirstChild) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirstChild(aFirstChild); } \
NS_IMETHOD GetLastChild(nsIDOMNode * *aLastChild) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastChild(aLastChild); } \
NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPreviousSibling(aPreviousSibling); } \
NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNextSibling(aNextSibling); } \
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap * *aAttributes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributes(aAttributes); } \
NS_IMETHOD GetOwnerDocument(nsIDOMDocument * *aOwnerDocument) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOwnerDocument(aOwnerDocument); } \
NS_IMETHOD InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->InsertBefore(newChild, refChild, _retval); } \
NS_IMETHOD ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReplaceChild(newChild, oldChild, _retval); } \
NS_IMETHOD RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveChild(oldChild, _retval); } \
NS_IMETHOD AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AppendChild(newChild, _retval); } \
NS_IMETHOD HasChildNodes(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasChildNodes(_retval); } \
NS_IMETHOD CloneNode(PRBool deep, nsIDOMNode **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneNode(deep, _retval); } \
NS_IMETHOD Normalize(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Normalize(); } \
NS_IMETHOD IsSupported(const nsAString & feature, const nsAString & version, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSupported(feature, version, _retval); } \
NS_IMETHOD GetNamespaceURI(nsAString & aNamespaceURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNamespaceURI(aNamespaceURI); } \
NS_IMETHOD GetPrefix(nsAString & aPrefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrefix(aPrefix); } \
NS_IMETHOD SetPrefix(const nsAString & aPrefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrefix(aPrefix); } \
NS_IMETHOD GetLocalName(nsAString & aLocalName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalName(aLocalName); } \
NS_IMETHOD HasAttributes(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasAttributes(_retval); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsDOMNode : public nsIDOMNode
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIDOMNODE
nsDOMNode();
private:
~nsDOMNode();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMNode, nsIDOMNode)
nsDOMNode::nsDOMNode()
{
/* member initializers and constructor code */
}
nsDOMNode::~nsDOMNode()
{
/* destructor code */
}
/* readonly attribute DOMString nodeName; */
NS_IMETHODIMP nsDOMNode::GetNodeName(nsAString & aNodeName)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* attribute DOMString nodeValue; */
NS_IMETHODIMP nsDOMNode::GetNodeValue(nsAString & aNodeValue)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMNode::SetNodeValue(const nsAString & aNodeValue)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute unsigned short nodeType; */
NS_IMETHODIMP nsDOMNode::GetNodeType(PRUint16 *aNodeType)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNode parentNode; */
NS_IMETHODIMP nsDOMNode::GetParentNode(nsIDOMNode * *aParentNode)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNodeList childNodes; */
NS_IMETHODIMP nsDOMNode::GetChildNodes(nsIDOMNodeList * *aChildNodes)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNode firstChild; */
NS_IMETHODIMP nsDOMNode::GetFirstChild(nsIDOMNode * *aFirstChild)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNode lastChild; */
NS_IMETHODIMP nsDOMNode::GetLastChild(nsIDOMNode * *aLastChild)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNode previousSibling; */
NS_IMETHODIMP nsDOMNode::GetPreviousSibling(nsIDOMNode * *aPreviousSibling)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNode nextSibling; */
NS_IMETHODIMP nsDOMNode::GetNextSibling(nsIDOMNode * *aNextSibling)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMNamedNodeMap attributes; */
NS_IMETHODIMP nsDOMNode::GetAttributes(nsIDOMNamedNodeMap * *aAttributes)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIDOMDocument ownerDocument; */
NS_IMETHODIMP nsDOMNode::GetOwnerDocument(nsIDOMDocument * *aOwnerDocument)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIDOMNode insertBefore (in nsIDOMNode newChild, in nsIDOMNode refChild) raises (DOMException); */
NS_IMETHODIMP nsDOMNode::InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIDOMNode replaceChild (in nsIDOMNode newChild, in nsIDOMNode oldChild) raises (DOMException); */
NS_IMETHODIMP nsDOMNode::ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIDOMNode removeChild (in nsIDOMNode oldChild) raises (DOMException); */
NS_IMETHODIMP nsDOMNode::RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIDOMNode appendChild (in nsIDOMNode newChild) raises (DOMException); */
NS_IMETHODIMP nsDOMNode::AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* boolean hasChildNodes (); */
NS_IMETHODIMP nsDOMNode::HasChildNodes(PRBool *_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsIDOMNode cloneNode (in boolean deep); */
NS_IMETHODIMP nsDOMNode::CloneNode(PRBool deep, nsIDOMNode **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* void normalize (); */
NS_IMETHODIMP nsDOMNode::Normalize()
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* boolean isSupported (in DOMString feature, in DOMString version); */
NS_IMETHODIMP nsDOMNode::IsSupported(const nsAString & feature, const nsAString & version, PRBool *_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute DOMString namespaceURI; */
NS_IMETHODIMP nsDOMNode::GetNamespaceURI(nsAString & aNamespaceURI)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* attribute DOMString prefix; */
NS_IMETHODIMP nsDOMNode::GetPrefix(nsAString & aPrefix)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsDOMNode::SetPrefix(const nsAString & aPrefix)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute DOMString localName; */
NS_IMETHODIMP nsDOMNode::GetLocalName(nsAString & aLocalName)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* boolean hasAttributes (); */
NS_IMETHODIMP nsDOMNode::HasAttributes(PRBool *_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
#endif /* __gen_nsIDOMNode_h__ */
|