@img/sharp-libvips-dev 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/include/expat.h +37 -24
  2. package/include/expat_config.h +9 -9
  3. package/include/expat_external.h +62 -61
  4. package/include/libxml2/libxml/HTMLparser.h +159 -101
  5. package/include/libxml2/libxml/HTMLtree.h +49 -74
  6. package/include/libxml2/libxml/SAX.h +8 -5
  7. package/include/libxml2/libxml/SAX2.h +18 -15
  8. package/include/libxml2/libxml/c14n.h +30 -29
  9. package/include/libxml2/libxml/catalog.h +47 -22
  10. package/include/libxml2/libxml/chvalid.h +52 -64
  11. package/include/libxml2/libxml/debugXML.h +18 -15
  12. package/include/libxml2/libxml/dict.h +22 -19
  13. package/include/libxml2/libxml/encoding.h +144 -111
  14. package/include/libxml2/libxml/entities.h +95 -75
  15. package/include/libxml2/libxml/globals.h +7 -4
  16. package/include/libxml2/libxml/hash.h +61 -64
  17. package/include/libxml2/libxml/list.h +59 -51
  18. package/include/libxml2/libxml/nanoftp.h +7 -4
  19. package/include/libxml2/libxml/nanohttp.h +10 -7
  20. package/include/libxml2/libxml/parser.h +1091 -563
  21. package/include/libxml2/libxml/parserInternals.h +167 -214
  22. package/include/libxml2/libxml/pattern.h +29 -31
  23. package/include/libxml2/libxml/relaxng.h +59 -58
  24. package/include/libxml2/libxml/schemasInternals.h +114 -268
  25. package/include/libxml2/libxml/schematron.h +59 -51
  26. package/include/libxml2/libxml/threads.h +19 -20
  27. package/include/libxml2/libxml/tree.h +873 -623
  28. package/include/libxml2/libxml/uri.h +21 -22
  29. package/include/libxml2/libxml/valid.h +170 -199
  30. package/include/libxml2/libxml/xinclude.h +24 -43
  31. package/include/libxml2/libxml/xlink.h +55 -51
  32. package/include/libxml2/libxml/xmlIO.h +133 -151
  33. package/include/libxml2/libxml/xmlautomata.h +66 -65
  34. package/include/libxml2/libxml/xmlerror.h +197 -94
  35. package/include/libxml2/libxml/xmlexports.h +17 -19
  36. package/include/libxml2/libxml/xmlmemory.h +44 -29
  37. package/include/libxml2/libxml/xmlmodule.h +14 -15
  38. package/include/libxml2/libxml/xmlreader.h +137 -131
  39. package/include/libxml2/libxml/xmlregexp.h +28 -31
  40. package/include/libxml2/libxml/xmlsave.h +81 -36
  41. package/include/libxml2/libxml/xmlschemas.h +61 -67
  42. package/include/libxml2/libxml/xmlschemastypes.h +60 -54
  43. package/include/libxml2/libxml/xmlstring.h +8 -9
  44. package/include/libxml2/libxml/xmlunicode.h +6 -3
  45. package/include/libxml2/libxml/xmlversion.h +44 -121
  46. package/include/libxml2/libxml/xmlwriter.h +97 -97
  47. package/include/libxml2/libxml/xpath.h +235 -232
  48. package/include/libxml2/libxml/xpathInternals.h +247 -277
  49. package/include/libxml2/libxml/xpointer.h +21 -17
  50. package/package.json +1 -1
  51. package/versions.json +2 -2
@@ -1,12 +1,15 @@
1
- /*
2
- * Summary: internal interfaces for XML Path Language implementation
3
- * Description: internal interfaces for XML Path Language implementation
1
+ /**
2
+ * @file
3
+ *
4
+ * @brief internal interfaces for XML Path Language implementation
5
+ *
6
+ * internal interfaces for XML Path Language implementation
4
7
  * used to build new modules on top of XPath like XPointer and
5
8
  * XSLT
6
9
  *
7
- * Copy: See Copyright for the status of this software.
10
+ * @copyright See Copyright for the status of this software.
8
11
  *
9
- * Author: Daniel Veillard
12
+ * @author Daniel Veillard
10
13
  */
11
14
 
12
15
  #ifndef __XML_XPATH_INTERNALS_H__
@@ -22,10 +25,17 @@
22
25
  extern "C" {
23
26
  #endif
24
27
 
25
- /*
26
- * Backward compatibility
28
+ /**
29
+ * Push a value on the stack
30
+ *
31
+ * @deprecated Use #xmlXPathValuePush
27
32
  */
28
33
  #define valuePush xmlXPathValuePush
34
+ /**
35
+ * Pop a value from the stack
36
+ *
37
+ * @deprecated Use #xmlXPathValuePop
38
+ */
29
39
  #define valuePop xmlXPathValuePop
30
40
 
31
41
  /************************************************************************
@@ -36,180 +46,158 @@ extern "C" {
36
46
 
37
47
  /*
38
48
  * Many of these macros may later turn into functions. They
39
- * shouldn't be used in #ifdef's preprocessor instructions.
49
+ * shouldn't be used in \#ifdef's preprocessor instructions.
40
50
  */
41
51
  /**
42
- * xmlXPathSetError:
43
- * @ctxt: an XPath parser context
44
- * @err: an xmlXPathError code
45
- *
46
52
  * Raises an error.
53
+ *
54
+ * @param ctxt an XPath parser context
55
+ * @param err an xmlXPathError code
47
56
  */
48
57
  #define xmlXPathSetError(ctxt, err) \
49
58
  { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
50
59
  if ((ctxt) != NULL) (ctxt)->error = (err); }
51
60
 
52
61
  /**
53
- * xmlXPathSetArityError:
54
- * @ctxt: an XPath parser context
55
- *
56
62
  * Raises an XPATH_INVALID_ARITY error.
63
+ *
64
+ * @param ctxt an XPath parser context
57
65
  */
58
66
  #define xmlXPathSetArityError(ctxt) \
59
67
  xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
60
68
 
61
69
  /**
62
- * xmlXPathSetTypeError:
63
- * @ctxt: an XPath parser context
64
- *
65
70
  * Raises an XPATH_INVALID_TYPE error.
71
+ *
72
+ * @param ctxt an XPath parser context
66
73
  */
67
74
  #define xmlXPathSetTypeError(ctxt) \
68
75
  xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
69
76
 
70
77
  /**
71
- * xmlXPathGetError:
72
- * @ctxt: an XPath parser context
73
- *
74
78
  * Get the error code of an XPath context.
75
79
  *
76
- * Returns the context error.
80
+ * @param ctxt an XPath parser context
81
+ * @returns the context error.
77
82
  */
78
83
  #define xmlXPathGetError(ctxt) ((ctxt)->error)
79
84
 
80
85
  /**
81
- * xmlXPathCheckError:
82
- * @ctxt: an XPath parser context
83
- *
84
86
  * Check if an XPath error was raised.
85
87
  *
86
- * Returns true if an error has been raised, false otherwise.
88
+ * @param ctxt an XPath parser context
89
+ * @returns true if an error has been raised, false otherwise.
87
90
  */
88
91
  #define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
89
92
 
90
93
  /**
91
- * xmlXPathGetDocument:
92
- * @ctxt: an XPath parser context
93
- *
94
94
  * Get the document of an XPath context.
95
95
  *
96
- * Returns the context document.
96
+ * @param ctxt an XPath parser context
97
+ * @returns the context document.
97
98
  */
98
99
  #define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
99
100
 
100
101
  /**
101
- * xmlXPathGetContextNode:
102
- * @ctxt: an XPath parser context
103
- *
104
102
  * Get the context node of an XPath context.
105
103
  *
106
- * Returns the context node.
104
+ * @param ctxt an XPath parser context
105
+ * @returns the context node.
107
106
  */
108
107
  #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
109
108
 
110
109
  XMLPUBFUN int
111
- xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
110
+ xmlXPathPopBoolean (xmlXPathParserContext *ctxt);
112
111
  XMLPUBFUN double
113
- xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
112
+ xmlXPathPopNumber (xmlXPathParserContext *ctxt);
114
113
  XMLPUBFUN xmlChar *
115
- xmlXPathPopString (xmlXPathParserContextPtr ctxt);
116
- XMLPUBFUN xmlNodeSetPtr
117
- xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
114
+ xmlXPathPopString (xmlXPathParserContext *ctxt);
115
+ XMLPUBFUN xmlNodeSet *
116
+ xmlXPathPopNodeSet (xmlXPathParserContext *ctxt);
118
117
  XMLPUBFUN void *
119
- xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
118
+ xmlXPathPopExternal (xmlXPathParserContext *ctxt);
120
119
 
121
120
  /**
122
- * xmlXPathReturnBoolean:
123
- * @ctxt: an XPath parser context
124
- * @val: a boolean
121
+ * Pushes the boolean `val` on the context stack.
125
122
  *
126
- * Pushes the boolean @val on the context stack.
123
+ * @param ctxt an XPath parser context
124
+ * @param val a boolean
127
125
  */
128
126
  #define xmlXPathReturnBoolean(ctxt, val) \
129
127
  valuePush((ctxt), xmlXPathNewBoolean(val))
130
128
 
131
129
  /**
132
- * xmlXPathReturnTrue:
133
- * @ctxt: an XPath parser context
134
- *
135
130
  * Pushes true on the context stack.
131
+ *
132
+ * @param ctxt an XPath parser context
136
133
  */
137
134
  #define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
138
135
 
139
136
  /**
140
- * xmlXPathReturnFalse:
141
- * @ctxt: an XPath parser context
142
- *
143
137
  * Pushes false on the context stack.
138
+ *
139
+ * @param ctxt an XPath parser context
144
140
  */
145
141
  #define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
146
142
 
147
143
  /**
148
- * xmlXPathReturnNumber:
149
- * @ctxt: an XPath parser context
150
- * @val: a double
144
+ * Pushes the double `val` on the context stack.
151
145
  *
152
- * Pushes the double @val on the context stack.
146
+ * @param ctxt an XPath parser context
147
+ * @param val a double
153
148
  */
154
149
  #define xmlXPathReturnNumber(ctxt, val) \
155
150
  valuePush((ctxt), xmlXPathNewFloat(val))
156
151
 
157
152
  /**
158
- * xmlXPathReturnString:
159
- * @ctxt: an XPath parser context
160
- * @str: a string
153
+ * Pushes the string `str` on the context stack.
161
154
  *
162
- * Pushes the string @str on the context stack.
155
+ * @param ctxt an XPath parser context
156
+ * @param str a string
163
157
  */
164
158
  #define xmlXPathReturnString(ctxt, str) \
165
159
  valuePush((ctxt), xmlXPathWrapString(str))
166
160
 
167
161
  /**
168
- * xmlXPathReturnEmptyString:
169
- * @ctxt: an XPath parser context
170
- *
171
162
  * Pushes an empty string on the stack.
163
+ *
164
+ * @param ctxt an XPath parser context
172
165
  */
173
166
  #define xmlXPathReturnEmptyString(ctxt) \
174
167
  valuePush((ctxt), xmlXPathNewCString(""))
175
168
 
176
169
  /**
177
- * xmlXPathReturnNodeSet:
178
- * @ctxt: an XPath parser context
179
- * @ns: a node-set
170
+ * Pushes the node-set `ns` on the context stack.
180
171
  *
181
- * Pushes the node-set @ns on the context stack.
172
+ * @param ctxt an XPath parser context
173
+ * @param ns a node-set
182
174
  */
183
175
  #define xmlXPathReturnNodeSet(ctxt, ns) \
184
176
  valuePush((ctxt), xmlXPathWrapNodeSet(ns))
185
177
 
186
178
  /**
187
- * xmlXPathReturnEmptyNodeSet:
188
- * @ctxt: an XPath parser context
189
- *
190
179
  * Pushes an empty node-set on the context stack.
180
+ *
181
+ * @param ctxt an XPath parser context
191
182
  */
192
183
  #define xmlXPathReturnEmptyNodeSet(ctxt) \
193
184
  valuePush((ctxt), xmlXPathNewNodeSet(NULL))
194
185
 
195
186
  /**
196
- * xmlXPathReturnExternal:
197
- * @ctxt: an XPath parser context
198
- * @val: user data
199
- *
200
187
  * Pushes user data on the context stack.
188
+ *
189
+ * @param ctxt an XPath parser context
190
+ * @param val user data
201
191
  */
202
192
  #define xmlXPathReturnExternal(ctxt, val) \
203
193
  valuePush((ctxt), xmlXPathWrapExternal(val))
204
194
 
205
195
  /**
206
- * xmlXPathStackIsNodeSet:
207
- * @ctxt: an XPath parser context
208
- *
209
196
  * Check if the current value on the XPath stack is a node set or
210
197
  * an XSLT value tree.
211
198
  *
212
- * Returns true if the current object on the stack is a node-set.
199
+ * @param ctxt an XPath parser context
200
+ * @returns true if the current object on the stack is a node-set.
213
201
  */
214
202
  #define xmlXPathStackIsNodeSet(ctxt) \
215
203
  (((ctxt)->value != NULL) \
@@ -217,88 +205,76 @@ XMLPUBFUN void *
217
205
  || ((ctxt)->value->type == XPATH_XSLT_TREE)))
218
206
 
219
207
  /**
220
- * xmlXPathStackIsExternal:
221
- * @ctxt: an XPath parser context
222
- *
223
208
  * Checks if the current value on the XPath stack is an external
224
209
  * object.
225
210
  *
226
- * Returns true if the current object on the stack is an external
211
+ * @param ctxt an XPath parser context
212
+ * @returns true if the current object on the stack is an external
227
213
  * object.
228
214
  */
229
215
  #define xmlXPathStackIsExternal(ctxt) \
230
216
  ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
231
217
 
232
218
  /**
233
- * xmlXPathEmptyNodeSet:
234
- * @ns: a node-set
235
- *
236
219
  * Empties a node-set.
220
+ *
221
+ * @param ns a node-set
237
222
  */
238
223
  #define xmlXPathEmptyNodeSet(ns) \
239
224
  { while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }
240
225
 
241
226
  /**
242
- * CHECK_ERROR:
243
- *
244
227
  * Macro to return from the function if an XPath error was detected.
245
228
  */
246
229
  #define CHECK_ERROR \
247
230
  if (ctxt->error != XPATH_EXPRESSION_OK) return
248
231
 
249
232
  /**
250
- * CHECK_ERROR0:
251
- *
252
233
  * Macro to return 0 from the function if an XPath error was detected.
253
234
  */
254
235
  #define CHECK_ERROR0 \
255
236
  if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
256
237
 
257
238
  /**
258
- * XP_ERROR:
259
- * @X: the error code
260
- *
261
239
  * Macro to raise an XPath error and return.
240
+ *
241
+ * @param X the error code
262
242
  */
263
243
  #define XP_ERROR(X) \
264
244
  { xmlXPathErr(ctxt, X); return; }
265
245
 
266
246
  /**
267
- * XP_ERROR0:
268
- * @X: the error code
269
- *
270
247
  * Macro to raise an XPath error and return 0.
248
+ *
249
+ * @param X the error code
271
250
  */
272
251
  #define XP_ERROR0(X) \
273
252
  { xmlXPathErr(ctxt, X); return(0); }
274
253
 
275
254
  /**
276
- * CHECK_TYPE:
277
- * @typeval: the XPath type
278
- *
279
255
  * Macro to check that the value on top of the XPath stack is of a given
280
256
  * type.
257
+ *
258
+ * @param typeval the XPath type
281
259
  */
282
260
  #define CHECK_TYPE(typeval) \
283
261
  if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
284
262
  XP_ERROR(XPATH_INVALID_TYPE)
285
263
 
286
264
  /**
287
- * CHECK_TYPE0:
288
- * @typeval: the XPath type
289
- *
290
265
  * Macro to check that the value on top of the XPath stack is of a given
291
266
  * type. Return(0) in case of failure
267
+ *
268
+ * @param typeval the XPath type
292
269
  */
293
270
  #define CHECK_TYPE0(typeval) \
294
271
  if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
295
272
  XP_ERROR0(XPATH_INVALID_TYPE)
296
273
 
297
274
  /**
298
- * CHECK_ARITY:
299
- * @x: the number of expected args
300
- *
301
275
  * Macro to check that the number of args passed to an XPath function matches.
276
+ *
277
+ * @param x the number of expected args
302
278
  */
303
279
  #define CHECK_ARITY(x) \
304
280
  if (ctxt == NULL) return; \
@@ -308,8 +284,6 @@ XMLPUBFUN void *
308
284
  XP_ERROR(XPATH_STACK_ERROR);
309
285
 
310
286
  /**
311
- * CAST_TO_STRING:
312
- *
313
287
  * Macro to try to cast the value on the top of the XPath stack to a string.
314
288
  */
315
289
  #define CAST_TO_STRING \
@@ -317,8 +291,6 @@ XMLPUBFUN void *
317
291
  xmlXPathStringFunction(ctxt, 1);
318
292
 
319
293
  /**
320
- * CAST_TO_NUMBER:
321
- *
322
294
  * Macro to try to cast the value on the top of the XPath stack to a number.
323
295
  */
324
296
  #define CAST_TO_NUMBER \
@@ -326,8 +298,6 @@ XMLPUBFUN void *
326
298
  xmlXPathNumberFunction(ctxt, 1);
327
299
 
328
300
  /**
329
- * CAST_TO_BOOLEAN:
330
- *
331
301
  * Macro to try to cast the value on the top of the XPath stack to a boolean.
332
302
  */
333
303
  #define CAST_TO_BOOLEAN \
@@ -339,7 +309,7 @@ XMLPUBFUN void *
339
309
  */
340
310
 
341
311
  XMLPUBFUN void
342
- xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
312
+ xmlXPathRegisterVariableLookup (xmlXPathContext *ctxt,
343
313
  xmlXPathVariableLookupFunc f,
344
314
  void *data);
345
315
 
@@ -348,7 +318,7 @@ XMLPUBFUN void
348
318
  */
349
319
 
350
320
  XMLPUBFUN void
351
- xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
321
+ xmlXPathRegisterFuncLookup (xmlXPathContext *ctxt,
352
322
  xmlXPathFuncLookupFunc f,
353
323
  void *funcCtxt);
354
324
 
@@ -356,72 +326,72 @@ XMLPUBFUN void
356
326
  * Error reporting.
357
327
  */
358
328
  XMLPUBFUN void
359
- xmlXPatherror (xmlXPathParserContextPtr ctxt,
329
+ xmlXPatherror (xmlXPathParserContext *ctxt,
360
330
  const char *file,
361
331
  int line,
362
332
  int no);
363
333
 
364
334
  XMLPUBFUN void
365
- xmlXPathErr (xmlXPathParserContextPtr ctxt,
335
+ xmlXPathErr (xmlXPathParserContext *ctxt,
366
336
  int error);
367
337
 
368
338
  #ifdef LIBXML_DEBUG_ENABLED
369
339
  XMLPUBFUN void
370
340
  xmlXPathDebugDumpObject (FILE *output,
371
- xmlXPathObjectPtr cur,
341
+ xmlXPathObject *cur,
372
342
  int depth);
373
343
  XMLPUBFUN void
374
344
  xmlXPathDebugDumpCompExpr(FILE *output,
375
- xmlXPathCompExprPtr comp,
345
+ xmlXPathCompExpr *comp,
376
346
  int depth);
377
347
  #endif
378
348
  /**
379
349
  * NodeSet handling.
380
350
  */
381
351
  XMLPUBFUN int
382
- xmlXPathNodeSetContains (xmlNodeSetPtr cur,
383
- xmlNodePtr val);
384
- XMLPUBFUN xmlNodeSetPtr
385
- xmlXPathDifference (xmlNodeSetPtr nodes1,
386
- xmlNodeSetPtr nodes2);
387
- XMLPUBFUN xmlNodeSetPtr
388
- xmlXPathIntersection (xmlNodeSetPtr nodes1,
389
- xmlNodeSetPtr nodes2);
390
-
391
- XMLPUBFUN xmlNodeSetPtr
392
- xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
393
- XMLPUBFUN xmlNodeSetPtr
394
- xmlXPathDistinct (xmlNodeSetPtr nodes);
352
+ xmlXPathNodeSetContains (xmlNodeSet *cur,
353
+ xmlNode *val);
354
+ XMLPUBFUN xmlNodeSet *
355
+ xmlXPathDifference (xmlNodeSet *nodes1,
356
+ xmlNodeSet *nodes2);
357
+ XMLPUBFUN xmlNodeSet *
358
+ xmlXPathIntersection (xmlNodeSet *nodes1,
359
+ xmlNodeSet *nodes2);
360
+
361
+ XMLPUBFUN xmlNodeSet *
362
+ xmlXPathDistinctSorted (xmlNodeSet *nodes);
363
+ XMLPUBFUN xmlNodeSet *
364
+ xmlXPathDistinct (xmlNodeSet *nodes);
395
365
 
396
366
  XMLPUBFUN int
397
- xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
398
- xmlNodeSetPtr nodes2);
399
-
400
- XMLPUBFUN xmlNodeSetPtr
401
- xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
402
- xmlNodePtr node);
403
- XMLPUBFUN xmlNodeSetPtr
404
- xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
405
- xmlNodeSetPtr nodes2);
406
- XMLPUBFUN xmlNodeSetPtr
407
- xmlXPathNodeLeading (xmlNodeSetPtr nodes,
408
- xmlNodePtr node);
409
- XMLPUBFUN xmlNodeSetPtr
410
- xmlXPathLeading (xmlNodeSetPtr nodes1,
411
- xmlNodeSetPtr nodes2);
412
-
413
- XMLPUBFUN xmlNodeSetPtr
414
- xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
415
- xmlNodePtr node);
416
- XMLPUBFUN xmlNodeSetPtr
417
- xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
418
- xmlNodeSetPtr nodes2);
419
- XMLPUBFUN xmlNodeSetPtr
420
- xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
421
- xmlNodePtr node);
422
- XMLPUBFUN xmlNodeSetPtr
423
- xmlXPathTrailing (xmlNodeSetPtr nodes1,
424
- xmlNodeSetPtr nodes2);
367
+ xmlXPathHasSameNodes (xmlNodeSet *nodes1,
368
+ xmlNodeSet *nodes2);
369
+
370
+ XMLPUBFUN xmlNodeSet *
371
+ xmlXPathNodeLeadingSorted (xmlNodeSet *nodes,
372
+ xmlNode *node);
373
+ XMLPUBFUN xmlNodeSet *
374
+ xmlXPathLeadingSorted (xmlNodeSet *nodes1,
375
+ xmlNodeSet *nodes2);
376
+ XMLPUBFUN xmlNodeSet *
377
+ xmlXPathNodeLeading (xmlNodeSet *nodes,
378
+ xmlNode *node);
379
+ XMLPUBFUN xmlNodeSet *
380
+ xmlXPathLeading (xmlNodeSet *nodes1,
381
+ xmlNodeSet *nodes2);
382
+
383
+ XMLPUBFUN xmlNodeSet *
384
+ xmlXPathNodeTrailingSorted (xmlNodeSet *nodes,
385
+ xmlNode *node);
386
+ XMLPUBFUN xmlNodeSet *
387
+ xmlXPathTrailingSorted (xmlNodeSet *nodes1,
388
+ xmlNodeSet *nodes2);
389
+ XMLPUBFUN xmlNodeSet *
390
+ xmlXPathNodeTrailing (xmlNodeSet *nodes,
391
+ xmlNode *node);
392
+ XMLPUBFUN xmlNodeSet *
393
+ xmlXPathTrailing (xmlNodeSet *nodes1,
394
+ xmlNodeSet *nodes2);
425
395
 
426
396
 
427
397
  /**
@@ -429,105 +399,105 @@ XMLPUBFUN xmlNodeSetPtr
429
399
  */
430
400
 
431
401
  XMLPUBFUN int
432
- xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
402
+ xmlXPathRegisterNs (xmlXPathContext *ctxt,
433
403
  const xmlChar *prefix,
434
404
  const xmlChar *ns_uri);
435
405
  XMLPUBFUN const xmlChar *
436
- xmlXPathNsLookup (xmlXPathContextPtr ctxt,
406
+ xmlXPathNsLookup (xmlXPathContext *ctxt,
437
407
  const xmlChar *prefix);
438
408
  XMLPUBFUN void
439
- xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
409
+ xmlXPathRegisteredNsCleanup (xmlXPathContext *ctxt);
440
410
 
441
411
  XMLPUBFUN int
442
- xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
412
+ xmlXPathRegisterFunc (xmlXPathContext *ctxt,
443
413
  const xmlChar *name,
444
414
  xmlXPathFunction f);
445
415
  XMLPUBFUN int
446
- xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
416
+ xmlXPathRegisterFuncNS (xmlXPathContext *ctxt,
447
417
  const xmlChar *name,
448
418
  const xmlChar *ns_uri,
449
419
  xmlXPathFunction f);
450
420
  XMLPUBFUN int
451
- xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
421
+ xmlXPathRegisterVariable (xmlXPathContext *ctxt,
452
422
  const xmlChar *name,
453
- xmlXPathObjectPtr value);
423
+ xmlXPathObject *value);
454
424
  XMLPUBFUN int
455
- xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
425
+ xmlXPathRegisterVariableNS (xmlXPathContext *ctxt,
456
426
  const xmlChar *name,
457
427
  const xmlChar *ns_uri,
458
- xmlXPathObjectPtr value);
428
+ xmlXPathObject *value);
459
429
  XMLPUBFUN xmlXPathFunction
460
- xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
430
+ xmlXPathFunctionLookup (xmlXPathContext *ctxt,
461
431
  const xmlChar *name);
462
432
  XMLPUBFUN xmlXPathFunction
463
- xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
433
+ xmlXPathFunctionLookupNS (xmlXPathContext *ctxt,
464
434
  const xmlChar *name,
465
435
  const xmlChar *ns_uri);
466
436
  XMLPUBFUN void
467
- xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
468
- XMLPUBFUN xmlXPathObjectPtr
469
- xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
437
+ xmlXPathRegisteredFuncsCleanup (xmlXPathContext *ctxt);
438
+ XMLPUBFUN xmlXPathObject *
439
+ xmlXPathVariableLookup (xmlXPathContext *ctxt,
470
440
  const xmlChar *name);
471
- XMLPUBFUN xmlXPathObjectPtr
472
- xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
441
+ XMLPUBFUN xmlXPathObject *
442
+ xmlXPathVariableLookupNS (xmlXPathContext *ctxt,
473
443
  const xmlChar *name,
474
444
  const xmlChar *ns_uri);
475
445
  XMLPUBFUN void
476
- xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
446
+ xmlXPathRegisteredVariablesCleanup(xmlXPathContext *ctxt);
477
447
 
478
448
  /**
479
449
  * Utilities to extend XPath.
480
450
  */
481
- XMLPUBFUN xmlXPathParserContextPtr
451
+ XMLPUBFUN xmlXPathParserContext *
482
452
  xmlXPathNewParserContext (const xmlChar *str,
483
- xmlXPathContextPtr ctxt);
453
+ xmlXPathContext *ctxt);
484
454
  XMLPUBFUN void
485
- xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
455
+ xmlXPathFreeParserContext (xmlXPathParserContext *ctxt);
486
456
 
487
- XMLPUBFUN xmlXPathObjectPtr
488
- xmlXPathValuePop (xmlXPathParserContextPtr ctxt);
457
+ XMLPUBFUN xmlXPathObject *
458
+ xmlXPathValuePop (xmlXPathParserContext *ctxt);
489
459
  XMLPUBFUN int
490
- xmlXPathValuePush (xmlXPathParserContextPtr ctxt,
491
- xmlXPathObjectPtr value);
460
+ xmlXPathValuePush (xmlXPathParserContext *ctxt,
461
+ xmlXPathObject *value);
492
462
 
493
- XMLPUBFUN xmlXPathObjectPtr
463
+ XMLPUBFUN xmlXPathObject *
494
464
  xmlXPathNewString (const xmlChar *val);
495
- XMLPUBFUN xmlXPathObjectPtr
465
+ XMLPUBFUN xmlXPathObject *
496
466
  xmlXPathNewCString (const char *val);
497
- XMLPUBFUN xmlXPathObjectPtr
467
+ XMLPUBFUN xmlXPathObject *
498
468
  xmlXPathWrapString (xmlChar *val);
499
- XMLPUBFUN xmlXPathObjectPtr
469
+ XMLPUBFUN xmlXPathObject *
500
470
  xmlXPathWrapCString (char * val);
501
- XMLPUBFUN xmlXPathObjectPtr
471
+ XMLPUBFUN xmlXPathObject *
502
472
  xmlXPathNewFloat (double val);
503
- XMLPUBFUN xmlXPathObjectPtr
473
+ XMLPUBFUN xmlXPathObject *
504
474
  xmlXPathNewBoolean (int val);
505
- XMLPUBFUN xmlXPathObjectPtr
506
- xmlXPathNewNodeSet (xmlNodePtr val);
507
- XMLPUBFUN xmlXPathObjectPtr
508
- xmlXPathNewValueTree (xmlNodePtr val);
475
+ XMLPUBFUN xmlXPathObject *
476
+ xmlXPathNewNodeSet (xmlNode *val);
477
+ XMLPUBFUN xmlXPathObject *
478
+ xmlXPathNewValueTree (xmlNode *val);
509
479
  XMLPUBFUN int
510
- xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
511
- xmlNodePtr val);
480
+ xmlXPathNodeSetAdd (xmlNodeSet *cur,
481
+ xmlNode *val);
512
482
  XMLPUBFUN int
513
- xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
514
- xmlNodePtr val);
483
+ xmlXPathNodeSetAddUnique (xmlNodeSet *cur,
484
+ xmlNode *val);
515
485
  XMLPUBFUN int
516
- xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
517
- xmlNodePtr node,
518
- xmlNsPtr ns);
486
+ xmlXPathNodeSetAddNs (xmlNodeSet *cur,
487
+ xmlNode *node,
488
+ xmlNs *ns);
519
489
  XMLPUBFUN void
520
- xmlXPathNodeSetSort (xmlNodeSetPtr set);
490
+ xmlXPathNodeSetSort (xmlNodeSet *set);
521
491
 
522
492
  XMLPUBFUN void
523
- xmlXPathRoot (xmlXPathParserContextPtr ctxt);
493
+ xmlXPathRoot (xmlXPathParserContext *ctxt);
524
494
  XML_DEPRECATED
525
495
  XMLPUBFUN void
526
- xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
496
+ xmlXPathEvalExpr (xmlXPathParserContext *ctxt);
527
497
  XMLPUBFUN xmlChar *
528
- xmlXPathParseName (xmlXPathParserContextPtr ctxt);
498
+ xmlXPathParseName (xmlXPathParserContext *ctxt);
529
499
  XMLPUBFUN xmlChar *
530
- xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
500
+ xmlXPathParseNCName (xmlXPathParserContext *ctxt);
531
501
 
532
502
  /*
533
503
  * Existing functions.
@@ -535,101 +505,101 @@ XMLPUBFUN xmlChar *
535
505
  XMLPUBFUN double
536
506
  xmlXPathStringEvalNumber (const xmlChar *str);
537
507
  XMLPUBFUN int
538
- xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
539
- xmlXPathObjectPtr res);
508
+ xmlXPathEvaluatePredicateResult (xmlXPathParserContext *ctxt,
509
+ xmlXPathObject *res);
540
510
  XMLPUBFUN void
541
- xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
542
- XMLPUBFUN xmlNodeSetPtr
543
- xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
544
- xmlNodeSetPtr val2);
511
+ xmlXPathRegisterAllFunctions (xmlXPathContext *ctxt);
512
+ XMLPUBFUN xmlNodeSet *
513
+ xmlXPathNodeSetMerge (xmlNodeSet *val1,
514
+ xmlNodeSet *val2);
545
515
  XMLPUBFUN void
546
- xmlXPathNodeSetDel (xmlNodeSetPtr cur,
547
- xmlNodePtr val);
516
+ xmlXPathNodeSetDel (xmlNodeSet *cur,
517
+ xmlNode *val);
548
518
  XMLPUBFUN void
549
- xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
519
+ xmlXPathNodeSetRemove (xmlNodeSet *cur,
550
520
  int val);
551
- XMLPUBFUN xmlXPathObjectPtr
552
- xmlXPathNewNodeSetList (xmlNodeSetPtr val);
553
- XMLPUBFUN xmlXPathObjectPtr
554
- xmlXPathWrapNodeSet (xmlNodeSetPtr val);
555
- XMLPUBFUN xmlXPathObjectPtr
521
+ XMLPUBFUN xmlXPathObject *
522
+ xmlXPathNewNodeSetList (xmlNodeSet *val);
523
+ XMLPUBFUN xmlXPathObject *
524
+ xmlXPathWrapNodeSet (xmlNodeSet *val);
525
+ XMLPUBFUN xmlXPathObject *
556
526
  xmlXPathWrapExternal (void *val);
557
527
 
558
- XMLPUBFUN int xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
559
- XMLPUBFUN int xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
560
- XMLPUBFUN int xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
561
- XMLPUBFUN void xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
562
- XMLPUBFUN void xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
563
- XMLPUBFUN void xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
564
- XMLPUBFUN void xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
565
- XMLPUBFUN void xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
566
- XMLPUBFUN void xmlXPathModValues(xmlXPathParserContextPtr ctxt);
528
+ XMLPUBFUN int xmlXPathEqualValues(xmlXPathParserContext *ctxt);
529
+ XMLPUBFUN int xmlXPathNotEqualValues(xmlXPathParserContext *ctxt);
530
+ XMLPUBFUN int xmlXPathCompareValues(xmlXPathParserContext *ctxt, int inf, int strict);
531
+ XMLPUBFUN void xmlXPathValueFlipSign(xmlXPathParserContext *ctxt);
532
+ XMLPUBFUN void xmlXPathAddValues(xmlXPathParserContext *ctxt);
533
+ XMLPUBFUN void xmlXPathSubValues(xmlXPathParserContext *ctxt);
534
+ XMLPUBFUN void xmlXPathMultValues(xmlXPathParserContext *ctxt);
535
+ XMLPUBFUN void xmlXPathDivValues(xmlXPathParserContext *ctxt);
536
+ XMLPUBFUN void xmlXPathModValues(xmlXPathParserContext *ctxt);
567
537
 
568
538
  XMLPUBFUN int xmlXPathIsNodeType(const xmlChar *name);
569
539
 
570
540
  /*
571
541
  * Some of the axis navigation routines.
572
542
  */
573
- XMLPUBFUN xmlNodePtr xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
574
- xmlNodePtr cur);
575
- XMLPUBFUN xmlNodePtr xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
576
- xmlNodePtr cur);
577
- XMLPUBFUN xmlNodePtr xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
578
- xmlNodePtr cur);
579
- XMLPUBFUN xmlNodePtr xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
580
- xmlNodePtr cur);
581
- XMLPUBFUN xmlNodePtr xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
582
- xmlNodePtr cur);
583
- XMLPUBFUN xmlNodePtr xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
584
- xmlNodePtr cur);
585
- XMLPUBFUN xmlNodePtr xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
586
- xmlNodePtr cur);
587
- XMLPUBFUN xmlNodePtr xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
588
- xmlNodePtr cur);
589
- XMLPUBFUN xmlNodePtr xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
590
- xmlNodePtr cur);
591
- XMLPUBFUN xmlNodePtr xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
592
- xmlNodePtr cur);
593
- XMLPUBFUN xmlNodePtr xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
594
- xmlNodePtr cur);
595
- XMLPUBFUN xmlNodePtr xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
596
- xmlNodePtr cur);
597
- XMLPUBFUN xmlNodePtr xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
598
- xmlNodePtr cur);
543
+ XMLPUBFUN xmlNode *xmlXPathNextSelf(xmlXPathParserContext *ctxt,
544
+ xmlNode *cur);
545
+ XMLPUBFUN xmlNode *xmlXPathNextChild(xmlXPathParserContext *ctxt,
546
+ xmlNode *cur);
547
+ XMLPUBFUN xmlNode *xmlXPathNextDescendant(xmlXPathParserContext *ctxt,
548
+ xmlNode *cur);
549
+ XMLPUBFUN xmlNode *xmlXPathNextDescendantOrSelf(xmlXPathParserContext *ctxt,
550
+ xmlNode *cur);
551
+ XMLPUBFUN xmlNode *xmlXPathNextParent(xmlXPathParserContext *ctxt,
552
+ xmlNode *cur);
553
+ XMLPUBFUN xmlNode *xmlXPathNextAncestorOrSelf(xmlXPathParserContext *ctxt,
554
+ xmlNode *cur);
555
+ XMLPUBFUN xmlNode *xmlXPathNextFollowingSibling(xmlXPathParserContext *ctxt,
556
+ xmlNode *cur);
557
+ XMLPUBFUN xmlNode *xmlXPathNextFollowing(xmlXPathParserContext *ctxt,
558
+ xmlNode *cur);
559
+ XMLPUBFUN xmlNode *xmlXPathNextNamespace(xmlXPathParserContext *ctxt,
560
+ xmlNode *cur);
561
+ XMLPUBFUN xmlNode *xmlXPathNextAttribute(xmlXPathParserContext *ctxt,
562
+ xmlNode *cur);
563
+ XMLPUBFUN xmlNode *xmlXPathNextPreceding(xmlXPathParserContext *ctxt,
564
+ xmlNode *cur);
565
+ XMLPUBFUN xmlNode *xmlXPathNextAncestor(xmlXPathParserContext *ctxt,
566
+ xmlNode *cur);
567
+ XMLPUBFUN xmlNode *xmlXPathNextPrecedingSibling(xmlXPathParserContext *ctxt,
568
+ xmlNode *cur);
599
569
  /*
600
570
  * The official core of XPath functions.
601
571
  */
602
- XMLPUBFUN void xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
603
- XMLPUBFUN void xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
604
- XMLPUBFUN void xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
605
- XMLPUBFUN void xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
606
- XMLPUBFUN void xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
607
- XMLPUBFUN void xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
608
- XMLPUBFUN void xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
609
- XMLPUBFUN void xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
610
- XMLPUBFUN void xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
611
- XMLPUBFUN void xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
612
- XMLPUBFUN void xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
613
- XMLPUBFUN void xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
614
- XMLPUBFUN void xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
615
- XMLPUBFUN void xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
616
- XMLPUBFUN void xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
617
- XMLPUBFUN void xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
618
- XMLPUBFUN void xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
619
- XMLPUBFUN void xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
620
- XMLPUBFUN void xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
621
- XMLPUBFUN void xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
622
- XMLPUBFUN void xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
623
- XMLPUBFUN void xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
624
- XMLPUBFUN void xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
625
- XMLPUBFUN void xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
626
- XMLPUBFUN void xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
627
- XMLPUBFUN void xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
572
+ XMLPUBFUN void xmlXPathLastFunction(xmlXPathParserContext *ctxt, int nargs);
573
+ XMLPUBFUN void xmlXPathPositionFunction(xmlXPathParserContext *ctxt, int nargs);
574
+ XMLPUBFUN void xmlXPathCountFunction(xmlXPathParserContext *ctxt, int nargs);
575
+ XMLPUBFUN void xmlXPathIdFunction(xmlXPathParserContext *ctxt, int nargs);
576
+ XMLPUBFUN void xmlXPathLocalNameFunction(xmlXPathParserContext *ctxt, int nargs);
577
+ XMLPUBFUN void xmlXPathNamespaceURIFunction(xmlXPathParserContext *ctxt, int nargs);
578
+ XMLPUBFUN void xmlXPathStringFunction(xmlXPathParserContext *ctxt, int nargs);
579
+ XMLPUBFUN void xmlXPathStringLengthFunction(xmlXPathParserContext *ctxt, int nargs);
580
+ XMLPUBFUN void xmlXPathConcatFunction(xmlXPathParserContext *ctxt, int nargs);
581
+ XMLPUBFUN void xmlXPathContainsFunction(xmlXPathParserContext *ctxt, int nargs);
582
+ XMLPUBFUN void xmlXPathStartsWithFunction(xmlXPathParserContext *ctxt, int nargs);
583
+ XMLPUBFUN void xmlXPathSubstringFunction(xmlXPathParserContext *ctxt, int nargs);
584
+ XMLPUBFUN void xmlXPathSubstringBeforeFunction(xmlXPathParserContext *ctxt, int nargs);
585
+ XMLPUBFUN void xmlXPathSubstringAfterFunction(xmlXPathParserContext *ctxt, int nargs);
586
+ XMLPUBFUN void xmlXPathNormalizeFunction(xmlXPathParserContext *ctxt, int nargs);
587
+ XMLPUBFUN void xmlXPathTranslateFunction(xmlXPathParserContext *ctxt, int nargs);
588
+ XMLPUBFUN void xmlXPathNotFunction(xmlXPathParserContext *ctxt, int nargs);
589
+ XMLPUBFUN void xmlXPathTrueFunction(xmlXPathParserContext *ctxt, int nargs);
590
+ XMLPUBFUN void xmlXPathFalseFunction(xmlXPathParserContext *ctxt, int nargs);
591
+ XMLPUBFUN void xmlXPathLangFunction(xmlXPathParserContext *ctxt, int nargs);
592
+ XMLPUBFUN void xmlXPathNumberFunction(xmlXPathParserContext *ctxt, int nargs);
593
+ XMLPUBFUN void xmlXPathSumFunction(xmlXPathParserContext *ctxt, int nargs);
594
+ XMLPUBFUN void xmlXPathFloorFunction(xmlXPathParserContext *ctxt, int nargs);
595
+ XMLPUBFUN void xmlXPathCeilingFunction(xmlXPathParserContext *ctxt, int nargs);
596
+ XMLPUBFUN void xmlXPathRoundFunction(xmlXPathParserContext *ctxt, int nargs);
597
+ XMLPUBFUN void xmlXPathBooleanFunction(xmlXPathParserContext *ctxt, int nargs);
628
598
 
629
599
  /**
630
600
  * Really internal functions
631
601
  */
632
- XMLPUBFUN void xmlXPathNodeSetFreeNs(xmlNsPtr ns);
602
+ XMLPUBFUN void xmlXPathNodeSetFreeNs(xmlNs *ns);
633
603
 
634
604
  #ifdef __cplusplus
635
605
  }